diff options
Diffstat (limited to 'linux/scripts/setup-iso.sh')
-rw-r--r-- | linux/scripts/setup-iso.sh | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/linux/scripts/setup-iso.sh b/linux/scripts/setup-iso.sh new file mode 100644 index 0000000..458284d --- /dev/null +++ b/linux/scripts/setup-iso.sh @@ -0,0 +1,144 @@ +#!/bin/sh + +# location of iso and md5 file +ISO_DIR="/usr/ports/iso" +MOUNT_POINT="/mnt/media" + +ISO_FILE="${ISO_DIR}/crux-3.5.iso" +MD5_FILE="${ISO_DIR}/crux-3.5.md5" + +# iso and md5 remote location +#ISO_URL="https://serverop.de/crux/crux-3.5/iso/crux-3.5.iso" +ISO_URL="https://ftp.spline.inf.fu-berlin.de/pub/crux/crux-3.5/iso/crux-3.5.iso" +MD5_URL="https://serverop.de/crux/crux-3.5/iso/crux-3.5.md5" + +# First we define the function +ConfirmOrExit () { + while true + do + echo -n "Please confirm (y or n) :" + read CONFIRM + case $CONFIRM in + y|Y|YES|yes|Yes) break ;; + n|N|no|NO|No) + echo "Aborting - you entered $CONFIRM" + exit + ;; + *) echo "Please enter only y or n" + esac + done + echo "You entered $CONFIRM. Continuing ..." +} + +download_iso() { + + mkdir -p ${ISO_DIR} + + if [ -f $ISO_FILE ]; + then + echo "File $ISO_FILE exists." + else + echo "File $ISO_FILE does not exist." + cd $ISO_DIR && { curl -k -O $ISO_URL ; cd -; } + fi + + if [ -f $MD5_FILE ]; + then + echo "File ${MD5_FILE} exists." + else + echo "File ${MD5_FILE} does not exist." + cd ${ISO_DIR} && { curl -k -O ${MD5_URL} ; cd -; } + fi + +} + +check_iso() { + if cd ${ISO_DIR} && md5sum -c ${MD5_FILE} ; + then + echo "Valid iso md5sum" + else + echo "Invalid iso md5sum" + fi +} + +mount_iso() { + + if [ ! -f $ISO_FILE ]; + then + echo "File $ISO_FILE does not exist." + exit 0 + fi + + modprobe isofs + modprobe loop + mount -o loop $ISO_FILE $MOUNT_POINT +} + +print_data() { + echo "1.1.1 Paths to iso and md5 files:" + echo "iso dir: ${ISO_DIR}" + echo "iso file: ${ISO_FILE}" + echo "md5 file: ${MD5_FILE}" + echo "iso url: ${ISO_URL}" + echo "md5 url: ${MD5_URL}" + echo "mount point: ${MOUNT_POINT}" +} + +print_help() { + echo "usage: setup-iso [options]" + echo "options:" + echo " -r, --root default dir is /usr/ports/iso" + echo " -d, --download download iso" + echo " -c, --check check iso md5sum" + echo " -m, --mount mount iso on /media " + echo " -h, --help print help and exit" +} + +while [ "$1" ]; do + case $1 in + -r|--root) + ISO_DIR=$2 + + ISO_FILE="${ISO_DIR}/crux-3.5.iso" + MD5_FILE="${ISO_DIR}/crux-3.5.md5" + + shift ;; + -d|--download) + echo "Download iso:" + echo "_____________________" + print_data + ConfirmOrExit + download_iso + exit 0 ;; + -c|--check) + echo "Check iso md5sum:" + echo "_____________________" + print_data + ConfirmOrExit + check_iso + exit 0 ;; + -m|--mount) + echo "Check iso md5sum:" + echo "_____________________" + if [ ! -z "$2" ]; + then + MOUNT_POINT=$2 + fi + print_data + ConfirmOrExit + mount_iso + exit 0 ;; + -h|--help) + print_help + exit 0 ;; + *) + echo "setup-iso: invalid option $1" + print_help + exit 1 ;; + esac + shift +done + +echo "setup-iso: no option provided" +print_help +exit 1 |