From 1991dc82396dc856df2e668e5b2cdd08be1fbcb7 Mon Sep 17 00:00:00 2001 From: Chris Koeritz Date: Tue, 15 Jan 2019 00:03:07 -0500 Subject: [PATCH] extracted spacem to file, new spacemall alias --- scripts/core/common.alias | 9 ++++- scripts/core/functions.sh | 84 +++++++++++++++++++-------------------- scripts/files/spacem.sh | 54 +++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 43 deletions(-) create mode 100644 scripts/files/spacem.sh diff --git a/scripts/core/common.alias b/scripts/core/common.alias index cd08c8ab..ec290f23 100644 --- a/scripts/core/common.alias +++ b/scripts/core/common.alias @@ -13,6 +13,12 @@ ############## +# make our functions available to the aliases. +#hmmm: should this be necessary? will it even work? +source "$FEISTY_MEOW_SCRIPTS/core/functions.sh" + +############## + # call the generated aliases file, if it exists. # we do this first so that our core aliases get a chance to override the aliases # based on scripts. @@ -135,7 +141,8 @@ define_yeti_alias cputemp='acpi -t' define_yeti_alias reroot='chown -R root:root /root' # space 'em all fixes naming for all of the files of the appropriate types in the current directory. -define_yeti_alias spacemall='spacem *.txt *.pdf *.jpg *.png *.odt *.ods *.JPG *.docx *.m4a *.mp3 *.eml *.html 2>> ~/.tmp/zz_spacem.log' +define_yeti_alias spacemall="find . -maxdepth 1 -mindepth 1 -type f $(echo pdf png jpg jpeg odt ods docx m4a mp3 eml html mov pptx xlsx | sed -e 's/\([a-z0-9][a-z0-9]*\)/-iname \"*.\1\" -o /g') -iname \"*.txt\" -exec bash "$FEISTY_MEOW_SCRIPTS/files/spacem.sh" \"{}\" \; " +#2>> ~/.tmp/zz_spacem.log' # yes, these what/who/why functions are really helpful... define_yeti_alias whoareyou='echo -e "Hello, I am a computer named $(hostname)\nand I am very pleased to meet you."' diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index 14aa99da..a5cd8b41 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -710,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 "=> 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 - } +# 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 +# } ############## diff --git a/scripts/files/spacem.sh b/scripts/files/spacem.sh new file mode 100644 index 00000000..fb06d8c5 --- /dev/null +++ b/scripts/files/spacem.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +function spacem_out() +{ + 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 cannot 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 is not 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 +} + +# this block should execute when the script is actually run, rather +# than when it is just being sourced. +if [[ $0 =~ .*spacem\.sh.* ]]; then + source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh" + exit_on_error "sourcing the feisty meow environment" + spacem_out "${@}" + exit_on_error "running spacem_out on a list: $*" +fi + -- 2.34.1