X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Ffunctions.sh;h=41533fa1eb5e267fec2bdfb7d27fb1306a8c62ad;hb=f572426ee59be801010c446e72e4c60e4768712a;hp=553e100f802d59dd89b4dcdc7642123a7a69307d;hpb=80c26125f4317df8d5ace57641b196a5e51913c1;p=feisty_meow.git diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index 553e100f..41533fa1 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -281,10 +281,12 @@ if [ -z "$skip_all" ]; then fi } - # switches from an X:/ form to an /X/path form. + # switches from an X:/ form to a /cygdrive/X/path form. this is only useful + # for the cygwin environment currently. function dos_to_unix_path() { # we always remove dos slashes in favor of forward slashes. - echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/' +#old: echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/' + echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/cygdrive\/\1\/\2/' } # returns a successful value (0) if this system is debian or ubuntu. @@ -470,21 +472,28 @@ if [ -z "$skip_all" ]; 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")" + 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/.*=> //')" + fi + # first we rename the file to be lower case. - perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$arg" &>/dev/null - # oops, now the name is all lower-case. we need to make the - # same adjustment. - arg2="$(echo "$arg" | tr A-Z a-z)" - # we definitely wanted to adjust the case first, rather than doing all - # the wacky stuff this script does to the filename... we will capture - # the output of the replace operaton for reporting. - final_name="$(bash "$FEISTY_MEOW_SCRIPTS/files/replace_spaces_with_underscores.sh" "$arg2")" + actual_file="$(echo $intermediate_name | sed -e "s/'\([^']*\)'/\1/")" + final_name="$(perl $FEISTY_MEOW_SCRIPTS/files/renlower.pl "$actual_file")" if [ -z "$final_name" ]; then - # make sure we report something, if there are no further name changes. - final_name="'$arg2'" + final_name="$intermediate_name" + else + final_name="$(echo $final_name | sed -e 's/.*=> //')" fi - # now zap the intermediate part of the name off. - final_name="$(echo $final_name | sed -e 's/.*=> //')" + # printout the combined operation results. echo "'$arg' => $final_name" done