functions   [plain text]


XAR="xar"

# Create an archive.
# 1st arg: the archive to create
# 2nd arg: the file to add to the archive
create_archive() {
	${XAR} -cf $1 $2
	if [ $? -ne 0 ]; then
		echo "Error creating archive"
		exit 1
	fi
}

# Extract an archive.  Exit on failure
# 1st argument: archive to extract
# 2nd argument (optional): file to extract from archive
extract_archive() {
	${XAR} -xf $1 $2
	if [ $? -ne 0 ]; then
		echo "Error extracting archive"
		exit 1
	fi
}

# Check if 2 files are linked.  Exit on failure
# 1st and 2nd argument: files to see if they are the same
check_hardlink() {
	local a=$1
	local b=$2

	local inode1 inode2

	if [ ! -f "${a}" ]; then
		echo "Didn't extract file from archive 1"
		exit 1
	fi
	
	if [ ! -f "${b}" ]; then
		echo "Didn't extract file from archive 1"
		exit 1
	fi
	
	inode1=`ls -i "${a}" | awk '{print $1}'`
	inode2=`ls -i "${b}" | awk '{print $1}'`
	
	if [ "$inode1" != "$inode2" ]; then
		echo "Inodes of extracted hardlinks not the same"
		exit1
	fi
}