From b7ff1dc1bac529598d15f77221920566c64aa851 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Tue, 5 Aug 2014 04:24:50 +0400 Subject: [PATCH] made the script interactive... (still a bit messy but works...) Signed-off-by: Alex A. Naanou --- scripts/sync-flash.sh | 121 +++++++++++++++++++++++++++++++++--------- 1 file changed, 95 insertions(+), 26 deletions(-) diff --git a/scripts/sync-flash.sh b/scripts/sync-flash.sh index 80781086..afa49707 100755 --- a/scripts/sync-flash.sh +++ b/scripts/sync-flash.sh @@ -18,13 +18,17 @@ while true ; do echo exit ;; + + -i|--interactive) + INTERACTIVE=1 + shift + ;; -m|-multi|--multi) MULTI=1 shift ;; -l|-last|--last) LAST=1 - COMMON_FLAG=-c shift ;; *) @@ -33,42 +37,107 @@ while true ; do esac done - if ! [ -z "$2" ] ; then TITLE=" - $2" fi -# XXX do a real three digit count... -# single flash card... -if [ -z $MULTI ] ; then - DIR="./- ${DATE}.00${COUNT}${TITLE}/" - while [ -e "$DIR" ] ; do - COUNT=$((COUNT+1)) +DRIVE=${1} + +while true ; do + if [[ $INTERACTIVE || ! $DRIVE ]] ; then + INTERACTIVE=1 + echo "Select/toggle an option:" + echo "0) Multi flash card mode is `[[ $MULTI ]] && echo "on" || echo "off"`" + echo "1) Directoy description is: \"$TITLE\"." + if [[ ! $DRIVE ]] ; then + echo "a-z) type a drive letter." + else + echo "a-z) type a new drive letter." + echo "Enter) copy drive ${DRIVE}" + fi + echo "2) build." + echo "3) quit." + read -p ": " RES + + case $RES in + # toggle multi mode... + 0) + MULTI=`[[ ! $MULTI ]] && echo 1 || echo ""` + continue + ;; + 1) + read -p "new description: " TITLE + TITLE=" - $TITLE" + continue + ;; + # continue with same drive or ask again... + "") + if [[ ! $DRIVE ]] ; then + echo "ERR: need a drive to copy from, no defaults." + echo + continue + fi + DRIVE=$DRIVE + ;; + 2) + LAST=1 + break + ;; + + 3) + exit + ;; + + # new drive letter... + *) + DRIVE=$RES + ;; + esac + fi + + # XXX do a real three digit count... + # single flash card... + if [ -z $MULTI ] ; then DIR="./- ${DATE}.00${COUNT}${TITLE}/" - done - BASE_DIR=$DIR + while [ -e "$DIR" ] ; do + COUNT=$((COUNT+1)) + DIR="./- ${DATE}.00${COUNT}${TITLE}/" + done + BASE_DIR=$DIR -# multiple flash cards shoot... -else - BASE_DIR="./- ${DATE}${TITLE}/" - DIR="${BASE_DIR}/${DATE}.00${COUNT}/" - while [ -e "$DIR" ] ; do - COUNT=$((COUNT+1)) + # multiple flash cards shoot... + else + BASE_DIR="./- ${DATE}${TITLE}/" DIR="${BASE_DIR}/${DATE}.00${COUNT}/" - done + while [ -e "$DIR" ] ; do + COUNT=$((COUNT+1)) + DIR="${BASE_DIR}/${DATE}.00${COUNT}/" + done + fi + + + mkdir -vp "$DIR" + + + echo "Copying files from $1..." + cp -Rpfv /mnt/${DRIVE}/* "$DIR" + echo "Copying files: done." + + + # exit interactive mode... + if [[ ! $INTERACTIVE || $LAST ]] ; then + break + fi +done + +if [[ $LAST ]] ; then + COMMON_FLAG=-c fi - -mkdir -vp "$DIR" - - -echo "Copying files from $1..." -cp -Rpfv /mnt/${1}/* "$DIR" -echo "Copying files: done." - - if [[ ! $MULTI || $LAST ]] ; then echo "Building archive..." ./process-archive.sh $COMMON_FLAG "$BASE_DIR" echo "Building archive: done." fi + +