vital fixes to sudo function
[feisty_meow.git] / scripts / core / launch_feisty_meow.sh
index fc50921c06c3adb2843ef01e9753e77df43f07e5..1e7e6c993f0657d813bfbd0066ad053ef7835244 100644 (file)
@@ -19,7 +19,7 @@
 ##############
 
 # this script cannot handle figuring out where it lives, so approaches that
-# get the WORKDIR will fail.  this is a consequence of this always being used
+# get the THISDIR will fail.  this is a consequence of this always being used
 # in bash's 'source' directive, which does not pass the script name as
 # argument 0.  instead, we just check for the bad condition of a malconfigured
 # script system and try to repair it.
@@ -86,12 +86,26 @@ if [ "$NO_REPAIRS_NEEDED" == "true" ]; then
   # some preconditions we want to establish before loading anything...
   
   # make sure that aliases can be used in non-interactive shells.
+  # this causes all aliases that are currently defined for this shell to
+  # be inherited by subshells that this shell starts.  this is unusual,
+  # but is preferred for my workflow in feisty meow scripts; it saves me
+  # time re-adding aliases if i can count on them already being there.
+  # this is a problem if you *don't* want the aliases there though.  we can
+  # solve that problem by running bash with the "-O expand_aliases" flags to
+  # stop the expansion for the next subshell.
   shopt -s expand_aliases
   
   # patch the user variable if we were launched by one of our cron jobs.
   if [ -z "$USER" -a ! -z "$CRONUSER" ]; then
     export USER="$CRONUSER"
   fi
+
+  # use the xauth info if we were given one in the environment.
+  # this allows root or other su'd identities to create windows with same
+  # display variable.
+  if [ ! -z "$DISPLAY" -a ! -z "$IMPORTED_XAUTH" ]; then
+    xauth add $DISPLAY . $IMPORTED_XAUTH
+  fi
   
   ##############
   
@@ -215,6 +229,23 @@ if [ "$NO_REPAIRS_NEEDED" == "true" ]; then
     unset FEISTY_MEOW_SHOW_LAUNCH_GREETING
   fi
 
+  # only run this hello file if the core feisty meow support haven't been loaded already.  this
+  # hopefully guarantees we show the info at most once in one shell continuum.
+  # this can also be disabled if the NO_HELLO variable has a non-empty value.
+  type CORE_VARIABLES_LOADED &>/dev/null
+  if [ $? -ne 0 -a -z "$NO_HELLO" ]; then
+    # print out a personalized hello file if we find one.
+    if [ -f ~/hello.txt ]; then
+      echo
+      sep 28
+      perl $FEISTY_MEOW_SCRIPTS/*/filedump.pl ~/hello.txt
+      sep 28
+      echo
+    fi
+    # from now on there should be no extra helloing.
+    export NO_HELLO=true
+  fi
+
   # load the last bits we do here.
   source "$FEISTY_MEOW_LOADING_DOCK/fmc_ending_sentinel.sh"