X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fcore%2Ffunctions.sh;h=db08274fadf8bb762d5bf9f6030c48fa5afa018b;hb=0de1caf60da973466329eb1cf094aa4bc4acc663;hp=a490bd40d2b6312891ecc2fd808dfb88c7dfe08e;hpb=185571317678eb17af4ca8b53542c1e7aed59d02;p=feisty_meow.git diff --git a/scripts/core/functions.sh b/scripts/core/functions.sh index a490bd40..db08274f 100644 --- a/scripts/core/functions.sh +++ b/scripts/core/functions.sh @@ -44,7 +44,7 @@ if [ -z "$skip_all" ]; then # there is no which command here. we produce nothing due to this. echo fi - echo $($WHICHER $to_find) + echo $($WHICHER $to_find 2>/dev/null) } # makes a directory of the name specified and then tries to change the @@ -426,13 +426,6 @@ if [ -z "$skip_all" ]; then # be relied on for ssh forwarding, even if the '-i' flag is passed to cause # a fresh shell (which normally doesn't get the launching user's environment # variables). - -##questioning our approach: we also ensure that -# # the feisty meow environment is recreated; normal subshells don't need -# # this, but when switching identity with sudo, it seems important. yet, -# # we also don't want to hose up their normal sudo actions, such as passing -# # along the current environment, should the user choose. - function sudo() { save_terminal_title @@ -440,41 +433,21 @@ if [ -z "$skip_all" ]; then # this can allow root to use our display to show X.org windows. if [ -z "$IMPORTED_XAUTH" -a ! -z "$DISPLAY" ]; then export IMPORTED_XAUTH="$(xauth list $DISPLAY | head -n 1 | awk '{print $3}')" + local REMOVE_IMP_XAUTH=true fi # launch sudo with just the variables we want to reach the other side. - # we take an extra step to null out the PATH, since MacOS seems to want - # to pass that even for a login shell (-i) somehow. - PATH= /usr/bin/sudo --preserve-env=SSH_AUTH_SOCK,IMPORTED_XAUTH "$@" -#"SSH_AUTH_SOCK='$SSH_AUTH_SOCK'" "IMPORTED_XAUTH='$IMPORTED_XAUTH'" "$@" + local varmods= +# varmods+="PATH= " + if [ ! -z "$IMPORTED_XAUTH" ]; then varmods+="IMPORTED_XAUTH=$IMPORTED_XAUTH "; fi + if [ ! -z "$SSH_AUTH_SOCK" ]; then varmods+="SSH_AUTH_SOCK=$SSH_AUTH_SOCK"; fi + /usr/bin/sudo $varmods "$@" retval=$? - unset IMPORTED_XAUTH - restore_terminal_title - return $retval - -##potential boneyard: - # prep a simple command string here, rather than messing with arguments - # in the already complicated command below. i was seeing some really - # screwy behavior trying to expand $@ when embedded for the bash -c flag, - # but making the variable ahead of time gets rid of that. - cmd="/usr/bin/sudo --preserve-env=SSH_AUTH_SOCK,IMPORTED_XAUTH ""$@" - - # omit any variables that are either wrong for a different user or used - # to shield the feisty meow scripts from reconfiguring. when we do the - # sudo, we want a fresh start for feisty meow at least. - # our approach to launching sudo is further complicated by our sentinel - # alias, which normally is passed to any subshells (to prevent recreating - # aliases). we turn off the expand_aliases shell option to avoid passing - # the sentinel, which ensures aliases do get recreated for the new user. - BUILD_VARS_LOADED= \ - CORE_VARIABLES_LOADED= \ - FEISTY_MEOW_SCRIPTS_LOADED= \ - function_sentinel= \ - MAIL= \ - HOME= \ - bash +O expand_aliases -c "$cmd" - retval=$? + # take the xauth info away again if it wasn't set already. + if [ ! -z "$REMOVE_IMP_XAUTH" ]; then + unset IMPORTED_XAUTH + fi restore_terminal_title return $retval } @@ -948,9 +921,10 @@ return 0 fi local charnfile="$(mktemp $TMP/zz_charn.XXXXXX)" +#hmmm: any way to do the below more nicely or reusably? find "${dirs[@]}" -follow -maxdepth 1 -mindepth 1 -type f | \ grep -i \ -"doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|ods\|odt\|pdf\|png\|ppt\|pptx\|txt\|vsd\|vsdx\|xls\|xlsx\|zip" | \ +"csv\|doc\|docx\|eml\|html\|jpeg\|jpg\|m4a\|mov\|mp3\|ods\|odt\|pdf\|png\|ppt\|pptx\|txt\|vsd\|vsdx\|xls\|xlsx\|xml\|zip" | \ sed -e 's/^/"/' | sed -e 's/$/"/' | \ xargs bash "$FEISTY_MEOW_SCRIPTS/files/spacem.sh" # drop the temp file now that we're done. @@ -959,7 +933,21 @@ return 0 ############## - # site avenger aliases + # tty relevant functions... + + # keep_awake: sends a message to the screen from the background. + function keep_awake() + { + # just starts the keep_awake process in the background. + bash $FEISTY_MEOW_SCRIPTS/tty/keep_awake_process.sh & + # this should leave the job running as %1 or a higher number if there + # are pre-existing background jobs. + } + + ############## + + # site avenger functions... + function switchto() { THISDIR="$FEISTY_MEOW_SCRIPTS/site_avenger"