#!/bin/bash #remaster lib [ -d "" ] || { 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_is_url=false iso_source="$1" [ -f "$iso_source" ] || { #if it is an url... if [ url-exist ]; then iso_source_is_url=true #dl to tmp + set 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" [ "$iso_source_is_url" == "true" ] && rm "$iso_source" tmpdir= echo "done" } #this func is standalone executable [ -n "$1" ] && { iso_extract $@ }