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.
# 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
}
##############
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";
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
- }
-
##############
# new breed of definer functions goes here. still in progress.
##############
+ # space 'em all: fixes naming for all of the files of the appropriate types
+ # in the directories specified.
+ function spacemall() {
+ local -a dirs=("${@}")
+echo "dirs from params are: " "${dirs[@]}"
+ if [ ${#dirs[@]} -eq 0 ]; then
+echo dirs had zero entries
+ dirs=(.)
+ fi
+echo "dirs are: " "${dirs[@]}"
+ find "${dirs[@]}" -follow -maxdepth 1 -mindepth 1 -type f \( $(echo pdf png jpg jpeg odt ods docx m4a mp3 eml html mov pptx xlsx zip | sed -e 's/\([a-z0-9][a-z0-9]*\)/-iname \"*.\1\" -o /g') -iname "*.txt" \) -exec bash "$FEISTY_MEOW_SCRIPTS/files/spacem.sh" "{}" \;
+ }
+
+ ##############
+
# site avenger aliases
function switchto()
{