remaster/src/func/iso_extract

62 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }
#iso_extract [iso_source] [iso_extr_dir]
function iso_extract() {
echo -n "extract iso ... "
#$1 = iso_source
#$2 = iso_extr_dir
#check root
[ "`whoami`" == "root" ] || {
echo "### ERROR ### iso_extract: need root permision!"
return 10
}
iso_extr_dir="$2"
[ -d "$iso_extr_dir" ] || {
echo "### ERROR ### iso_extract: aim directory not exist!"
return 12
}
iso_source="$1"
[ -f "$iso_source" ] || {
#if it is an url...
if [ "`check_url $iso_source`" == "true" ]; then
#dl to tmp + set iso_source
iso_tmp="`mktemp --suffix=.iso`"; rm "$iso_tmp"
wget -O "$iso_tmp" "$iso_source"
else
echo "### ERROR ### iso_extract: ISO \"$iso_source\" not exist!"
return 11
fi
}
#mace tmp mountpoint
tmpdir="`mktemp -d`"
[ -d "$iso_extr_dir" ] && {
rm -r "$iso_extr_dir/"
mkdir "$iso_extr_dir"
}
#copy files ...
mount -o loop,ro "$iso_source" "$tmpdir"
cp -f -r "$tmpdir/"* "$iso_extr_dir"
#clear tmp mountpoint
umount "$iso_source"
rm -r "$tmpdir"
[ -n "$iso_tmp" ] && rm "$iso_tmp"
tmpdir=
echo "done"
}
#this func is standalone executable
[ -n "$1" ] && {
iso_extract $@
}