-#!/bin/bash
+#!/usr/bin/env bash
##############
##############
+# first step--capture the current path if we haven't already.
+if [ -z "$FEISTY_MEOW_ORIGINAL_PATH" ]; then
+ export FEISTY_MEOW_ORIGINAL_PATH="$PATH"
+fi
+
+##############
+
# 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.
# 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
##############
# this is our single entry point we can use without knowing any variables
# yet in the initialization process.
export FEISTY_MEOW_LOADING_DOCK="$HOME/.zz_feisty_loading"
- #hmmm: the above is kind of a constant. that's not so great.
+#hmmm: the above is kind of a constant. that's not so great.
# make sure our main variables are established.
FEISTY_MEOW_VARIABLES_LOADING_FILE="$FEISTY_MEOW_LOADING_DOCK/fmc_variables.sh"
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"