X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcore%2Ffunctions.sh;h=d2b0bdaa44f7c19c6caa7df0a76780804a122c67;hb=b6af556282b79c026f5b038fccbbf9cabc692890;hp=c4ff3f65090c852c7501ef7766e35d7757d1fc1d;hpb=17c68404134083f61ef0884ddd4ef4df4fdfa992;p=feisty_meow.git diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index c4ff3f65..d2b0bdaa 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -39,7 +39,7 @@ if [ -z "$skip_all" ]; then function whichable() { to_find="$1"; shift - local WHICHER="$(\which which 2>/dev/null)" + local WHICHER="$(/usr/bin/which which 2>/dev/null)" #>&2 echo "got whicher as: $WHICHER" if [ $? -ne 0 ]; then # there is no which command here. we produce nothing due to this. @@ -293,15 +293,18 @@ if [ -z "$skip_all" ]; then # gets cygwin's (god awful) ps to show windoze processes also. local EXTRA_DOZER_FLAGS="-W" # pattern to use for peeling off the process numbers. - local pid_finder_pattern='s/ *\([0-9][0-9]*\) *.*$/\1/p' - +# local pid_finder_cmd="awk -- '{ print \$4; }'" + local field_number=4 else # flags which clean up the process listing output on unixes. # apparently cygwin doesn't count as a type of unix, because their # crummy specialized ps command doesn't support normal ps flags. local EXTRA_UNIX_FLAGS="-o pid,args" # pattern to use for peeling off the process numbers. - local pid_finder_pattern='s/^[[:space:]]*\([0-9][0-9]*\).*$/\1/p' +# local pid_finder_cmd="sed -n -e \\'s/^[[:space:]]*\([0-9][0-9]*\).*$/\\\\1/p\\'" +#echo pidfinder: $pid_finder_cmd +# local pid_finder_cmd="awk -- '{ print \$1; }'" + local field_number=1 fi /bin/ps $EXTRA_DOZER_FLAGS $EXTRA_UNIX_FLAGS $user_flag | tail -n +2 >$PID_DUMP @@ -318,7 +321,7 @@ if [ -z "$skip_all" ]; then PIDS_SOUGHT+=($(cat $PID_DUMP \ | grep -i "$i" \ | grep -v "$excluder" \ - | sed -n -e "$pid_finder_pattern")) + | awk -- "{ print \$${field_number}; }" )) done #echo ==== #echo pids sought list became: @@ -373,6 +376,11 @@ if [ -z "$skip_all" ]; then # special case for windows. ps | head -1 for curr in $p; do +#hmmm: currently not working right for windows cygwin. we're getting proper +# winpids out of the list now, but not able to use them in ps? +# should i be keeping the weirdo pid that we were getting in column 1 and +# use that, except when talking to taskkill? +# need further research. ps -W -p $curr | tail -n +2 done else @@ -419,12 +427,12 @@ if [ -z "$skip_all" ]; then DOSSYHOME="$(cygpath -am "$HOME")" fi - if [ ! -z "$SERIOUS_SLASH_TREATMENT" ]; then - # unless this flag is set, in which case we force dos slashes. - echo "$1" | sed -e "s?^$HOME?$DOSSYHOME?g" | sed -e 's/\\/\//g' | sed -e 's/\/cygdrive//' | sed -e 's/\/\([a-zA-Z]\)\/\(.*\)/\1:\/\2/' | sed -e 's/\//\\/g' - else +# if [ ! -z "$SERIOUS_SLASH_TREATMENT" ]; then +# # unless this flag is set, in which case we force dos slashes. +# echo "$1" | sed -e "s?^$HOME?$DOSSYHOME?g" | sed -e 's/\\/\//g' | sed -e 's/\/cygdrive//' | sed -e 's/\/\([a-zA-Z]\)\/\(.*\)/\1:\/\2/' | sed -e 's/\//\\/g' +# else echo "$1" | sed -e "s?^$HOME?$DOSSYHOME?g" | sed -e 's/\\/\//g' | sed -e 's/\/cygdrive//' | sed -e 's/\/\([a-zA-Z]\)\/\(.*\)/\1:\/\2/' - fi +# fi } # # switches from an X:/ form to a /cygdrive/X/path form. this is only useful