From 8142ffde3037976e152711f902ad9622aa1b7cba Mon Sep 17 00:00:00 2001 From: Ludovic Pouzenc Date: Sun, 22 Oct 2017 13:31:10 +0200 Subject: hours of polishing tmux, script sequences, hinting. ^C abort in tmux is broken. --- nfs/autorun.sh | 31 ---------------------------- nfs/nfs-autorun.sh | 23 +++++++++++++++++++++ nfs/scripts/funcs.sh | 42 +++++++++++++++++++++++--------------- nfs/scripts/image_capture_I5456.sh | 8 ++++---- nfs/scripts/image_deploy.sh | 2 +- 5 files changed, 54 insertions(+), 52 deletions(-) delete mode 100755 nfs/autorun.sh create mode 100755 nfs/nfs-autorun.sh (limited to 'nfs') diff --git a/nfs/autorun.sh b/nfs/autorun.sh deleted file mode 100755 index ad99a8e..0000000 --- a/nfs/autorun.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/busybox sh - -rest10() { - # Let the user read machine_info and other usefull informations on console (or skip with Enter) - sfx_question ; read -t10 -p 'Press Enter or wait 10 sec...' - # Make some blank lines on console - echo -e '\n\n\n\n\n' -} - -# Define some handy variables -imagedir=/mnt/nfs/images -scriptdir=/mnt/nfs/scripts/ -hostname=$(hostname) - -# Load helper functions -source $scriptdir/funcs.sh # Load some autorun.sh specific helper functions -source /etc/rc.d/funcs # Reload init help functions - -# Check all prerequisites and exit if it fail -hostname_test || exit 1 -firstdisk_test || exit 2 - -# Run the main action script -if nfswrite_test -then # Start deploy script after letting a chance to cancel it - rest10 ; source $scriptdir/image_deploy.sh - -else scriptavailability_test image_capture_${hostname}.sh || exit 3 - # Start capture script if all it needs is available - rest10 ; source $scriptdir/image_capture.sh -fi diff --git a/nfs/nfs-autorun.sh b/nfs/nfs-autorun.sh new file mode 100755 index 0000000..b2be8b2 --- /dev/null +++ b/nfs/nfs-autorun.sh @@ -0,0 +1,23 @@ +#!/bin/busybox sh + +# Define some handy variables +imagedir=/mnt/nfs/images +scriptdir=/mnt/nfs/scripts/ +hostname=$(hostname) + +# Load helper functions +source $scriptdir/funcs.sh # Load some nfs-autorun.sh specific helper functions + +# Check all prerequisites and exit if it fail +hostname_test || exit 1 +firstdisk_test || exit 2 + +# Run the main action script +if nfswrite_test +then # Start deploy script after letting a chance to cancel it + pause10s ; source $scriptdir/image_deploy.sh + +else scriptavailability_test image_capture_${hostname}.sh || exit 3 + # Start capture script if all it needs is available + pause10s ; source $scriptdir/image_capture.sh +fi diff --git a/nfs/scripts/funcs.sh b/nfs/scripts/funcs.sh index 5e27052..a69fb75 100644 --- a/nfs/scripts/funcs.sh +++ b/nfs/scripts/funcs.sh @@ -1,24 +1,34 @@ +# no args, let the user read useful informations on console (or skip with Enter) +pause10s() { + sfx_question # sfx_* comes from /etc/rc.d/funcs helpers + read -t10 -p 'Press Enter or wait 10 sec...' + # Make some blank lines on console + echo -e '\n\n\n\n\n' +} + # no args, print colored message, returns 0 if hostname seems valid, returns 1 if hostname is a default one hostname_test() { + BADNAME='echo_color white red ">>> hostname should not contain special characters or should not be FQDN : $hostname"' + # This test is for security concern, hostname will be used as shell arg case $hostname in - "(none)"|eficast|"") echo_color white red ">>> " "hostname is not customized : $hostname" ; return 1 ;; - *\&*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\(*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\{*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\;*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\<*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\`*) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *\ *) echo_color white red ">>> " "hostname should not contain special characters or should not be FQDN : $hostname" ; return 2 ;; - *) echo_color green black ">>> " "hostname is $hostname" ; return 0 ;; + "(none)"|eficast|"") echo_color white red ">>> hostname is not customized : $hostname" ; return 1 ;; + *\&*) $BADNAME; return 2 ;; + *\(*) $BADNAME; return 2 ;; + *\{*) $BADNAME; return 2 ;; + *\;*) $BADNAME; return 2 ;; + *\<*) $BADNAME; return 2 ;; + *\`*) $BADNAME; return 2 ;; + *\ *) $BADNAME; return 2 ;; + *) echo_color green black ">>> hostname is $hostname" ; return 0 ;; esac } # no args, print colored message, returns 0 if NFS is read-only, returns 1 if NFS is read-write (needed for image capture) nfswrite_test() { if ! touch /mnt/nfs/.writetest - then echo_color green black ">>> " "NFS is read-only" + then echo_color green black ">>> NFS is read-only" return 0 - else echo_color white blue ">>> " "NFS is read-write" + else echo_color white blue ">>> NFS is read-write" return 1 fi } @@ -27,13 +37,13 @@ nfswrite_test() { firstdisk_test() { diskinfo=$(lsblk --list --output TRAN,MODEL --noheadings --nodeps /dev/sda) case $diskinfo in - sata*) echo_color green black ">>> " "First disk is SATA and is available ($diskinfo)" + sata*) echo_color green black ">>> First disk is SATA and is available ($diskinfo)" return 0 ;; - usb*) echo_color white red ">>> " "First disk is USB ($diskinfo)" + usb*) echo_color white red ">>> First disk is USB ($diskinfo)" return 1 ;; - *) echo_color white red ">>> " "First disk is unknown ($diskinfo)" + *) echo_color white red ">>> First disk is unknown ($diskinfo)" return 2; ;; esac @@ -43,9 +53,9 @@ firstdisk_test() { scriptavailability_test() { script=$scriptdir/$1 if [ -r $script ] - then echo_color green black ">>> " "Script $script is available" + then echo_color green black ">>> Script $script is available" return 0 - else echo_color white blue ">>> " "Script $script is missing or unreadable" + else echo_color white blue ">>> Script $script is missing or unreadable" return 1 fi } diff --git a/nfs/scripts/image_capture_I5456.sh b/nfs/scripts/image_capture_I5456.sh index bc40a51..9895edd 100644 --- a/nfs/scripts/image_capture_I5456.sh +++ b/nfs/scripts/image_capture_I5456.sh @@ -4,16 +4,16 @@ # $outdir is the also the current working dir, garanted to be empty and writable # Many cloning/partitioning tools are available for use, see make-boot-image.sh -echo_color white blue ">>> " "Capturing /dev/sda boot sectors" +echo_color white blue ">>> Capturing /dev/sda boot sectors" dd if=/dev/sda count=2048 2>logs/sda-dd.log | pigz --fast > sda-dd.gz 2>logs/sda-pigz.log -echo_color white blue ">>> " "Capturing /dev/sda1 NTFS BOOT" +echo_color white blue ">>> Capturing /dev/sda1 NTFS BOOT" partclone.ntfs --clone -s /dev/sda1 -L logs/sda1-partclone.log --no_check | pigz --fast >sda1-partclone.gz 2>logs/sda1-pigz.log -echo_color white blue ">>> " "Capturing /dev/sda2 NTFS WINDOWS" +echo_color white blue ">>> Capturing /dev/sda2 NTFS WINDOWS" partclone.ntfs --clone -s /dev/sda2 -L logs/sda2-partclone.log --no_check | pigz --fast >sda2-partclone.gz 2>logs/sda2-pigz.log -echo_color white blue ">>> " "Capturing /dev/sda3 EXT4 LINUX" +echo_color white blue ">>> Capturing /dev/sda3 EXT4 LINUX" partclone.ext4 --clone -s /dev/sda3 -L logs/sda3-partclone.log --no_check | pigz --fast >sda3-partclone.gz 2>logs/sda3-pigz.log diff --git a/nfs/scripts/image_deploy.sh b/nfs/scripts/image_deploy.sh index bdc5e9c..4efd715 100644 --- a/nfs/scripts/image_deploy.sh +++ b/nfs/scripts/image_deploy.sh @@ -1,4 +1,4 @@ #!/bin/busybox sh # Should only started from autorun.sh (define some helper functions and variables) -echo_color white red ">>> " "Image deploy not yet ready" +echo_color white red ">>> Image deploy not yet ready" -- cgit v1.2.3