X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Ffunctions.sh;h=a58e818fd5000bee4172a7fcf0f955e8d76d0656;hb=1acdaf5897bfed83c3a3d7cae9c6f9e6d5480835;hp=de3c3ba2688020a4fc7240bba5ba2a6bf34800c3;hpb=fcd166fbb628f3cb4915da3ef8155096196687f4;p=feisty_meow.git diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index de3c3ba2..a58e818f 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -40,15 +40,25 @@ if [ -z "$skip_all" ]; then cd "$1" } + # returns true if the variable is an array. function is_array() { [[ "$(declare -p $1)" =~ "declare -a" ]] } + # returns true if the name provided is a defined alias. function is_alias() { alias $1 &>/dev/null return $? } + # makes the status of pipe number N (passed as first parameter) into the + # main return value (i.e., the value for $?). this is super handy to avoid + # repeating the awkward looking code below in multiple places. + function promote_pipe_return() + { + ( exit ${PIPESTATUS[$1]} ) + } + ############## # displays the value of a variable in bash friendly format. @@ -177,6 +187,9 @@ if [ -z "$skip_all" ]; then # version for the other side (just 'linux'); we don't want the remote side still # thinking it's running xterm. save_terminal_title + if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then + echo TERM saved is: $PRIOR_TERMINAL_TITLE + fi #hmmm: why were we doing this? it scorches the user's logged in session, leaving it without proper terminal handling. # # we save the value of TERM; we don't want to leave the user's terminal # # brain dead once we come back from this function. @@ -185,7 +198,13 @@ if [ -z "$skip_all" ]; then /usr/bin/ssh -X -C "${args[@]}" # # restore the terminal variable also. # TERM="$oldterm" + if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then + echo TERM before restore, will use prior title of: $PRIOR_TERMINAL_TITLE + fi restore_terminal_title + if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then + echo TERM title restored to prior value + fi } ############## @@ -483,9 +502,18 @@ if [ -z "$skip_all" ]; then save_terminal_title if [ ! -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" ]; then - echo "The customization folder for '$custom_user' would be:" - echo " $FEISTY_MEOW_SCRIPTS/customize/$custom_user" - echo "but that folder does not exist. Skipping recustomization." + echo -e "the customization folder for '$custom_user' is missing: + + $FEISTY_MEOW_SCRIPTS/customize/$custom_user + +we will skip recustomization, but these other customizations are available: +" + # a little tr and sed magic to fix the carriage returns into commas. + local line="$(find $FEISTY_MEOW_SCRIPTS/customize -mindepth 1 -maxdepth 1 -type d -exec basename {} ';' | tr '\n' '&' | sed 's/&/, /g' | sed -e 's/, $//')" + # make the line feeds and carriage returns manageable with tr. + # convert the ampersand, our weird replacement for EOL, with a comma + space in sed. + # last touch with sed removes the last comma. + echo " $line" return 1 fi @@ -504,7 +532,7 @@ if [ -z "$skip_all" ]; then local fail_message="\n are the perl dependencies installed? if you're on ubuntu or debian, try this:\n - $(grep "apt-get.*perl" $FEISTY_MEOW_APEX/readme.txt)\n + $(grep "apt.*perl" $FEISTY_MEOW_APEX/readme.txt)\n or if you're on cygwin, then try this (if apt-cyg is available):\n $(grep "apt-cyg.*perl" $FEISTY_MEOW_APEX/readme.txt)\n"; @@ -689,7 +717,7 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n while [ $# -gt 0 ]; do arg="$1"; shift if [ ! -f "$arg" -a ! -d "$arg" ]; then - echo "failure to find a file or directory named '$arg'." + echo "=> did not find a file or directory named '$arg'." continue fi