X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Ffunctions.sh;h=a5cd8b41f0aadc9c932abad09726faf5442be2b2;hb=1991dc82396dc856df2e668e5b2cdd08be1fbcb7;hp=d1b9311e5a9a6ad916a7d341cfa1b462fd1b0dda;hpb=83f7ee53a24c439ffe2439d2e0facaa351bf4aaf;p=feisty_meow.git diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index d1b9311e..a5cd8b41 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,15 +187,22 @@ 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 + #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. # local oldterm="$TERM" # export TERM=linux + /usr/bin/ssh -X -C "${args[@]}" + # # restore the terminal variable also. # TERM="$oldterm" + restore_terminal_title + if [ ! -z "$DEBUG_FEISTY_MEOW" ]; then + echo TERM title restored to prior value + fi } ############## @@ -513,7 +530,7 @@ we will skip recustomization, but these other customizations are available: 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"; @@ -693,48 +710,48 @@ or if you're on cygwin, then try this (if apt-cyg is available):\n popd &>/dev/null } - function spacem() - { - while [ $# -gt 0 ]; do - arg="$1"; shift - if [ ! -f "$arg" -a ! -d "$arg" ]; then - echo "failure to find a file or directory named '$arg'." - continue - fi - - # first we will capture the output of the character replacement operation for reporting. - # this is done first since some filenames can't be properly renamed in perl (e.g. if they - # have pipe characters apparently). - intermediate_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg")" - local saw_intermediate_result=0 - if [ -z "$intermediate_name" ]; then - # make sure we report something, if there are no further name changes. - intermediate_name="'$arg'" - else - # now zap the first part of the name off (since original name isn't needed). - intermediate_name="$(echo $intermediate_name | sed -e 's/.*=> //')" - saw_intermediate_result=1 - fi - - # first we rename the file to be lower case. - actual_file="$(echo $intermediate_name | sed -e "s/'\([^']*\)'/\1/")" - final_name="$(perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$actual_file")" - local saw_final_result=0 - if [ -z "$final_name" ]; then - final_name="$intermediate_name" - else - final_name="$(echo $final_name | sed -e 's/.*=> //')" - saw_final_result=1 - fi -#echo intermed=$saw_intermediate_result -#echo final=$saw_final_result - - if [[ $saw_intermediate_result != 0 || $saw_final_result != 0 ]]; then - # printout the combined operation results. - echo "'$arg' => $final_name" - fi - done - } +# function spacem() +# { +# while [ $# -gt 0 ]; do +# arg="$1"; shift +# if [ ! -f "$arg" -a ! -d "$arg" ]; then +# echo "=> did not find a file or directory named '$arg'." +# continue +# fi +# +# # first we will capture the output of the character replacement operation for reporting. +# # this is done first since some filenames can't be properly renamed in perl (e.g. if they +# # have pipe characters apparently). +# intermediate_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg")" +# local saw_intermediate_result=0 +# if [ -z "$intermediate_name" ]; then +# # make sure we report something, if there are no further name changes. +# intermediate_name="'$arg'" +# else +# # now zap the first part of the name off (since original name isn't needed). +# intermediate_name="$(echo $intermediate_name | sed -e 's/.*=> //')" +# saw_intermediate_result=1 +# fi +# +# # first we rename the file to be lower case. +# actual_file="$(echo $intermediate_name | sed -e "s/'\([^']*\)'/\1/")" +# final_name="$(perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$actual_file")" +# local saw_final_result=0 +# if [ -z "$final_name" ]; then +# final_name="$intermediate_name" +# else +# final_name="$(echo $final_name | sed -e 's/.*=> //')" +# saw_final_result=1 +# fi +##echo intermed=$saw_intermediate_result +##echo final=$saw_final_result +# +# if [[ $saw_intermediate_result != 0 || $saw_final_result != 0 ]]; then +# # printout the combined operation results. +# echo "'$arg' => $final_name" +# fi +# done +# } ##############