##############
-echo "yodel; feisty apex=$FEISTY_MEOW_APEX; feisty scripts=$FEISTY_MEOW_SCRIPTS"
-
# 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.
cd /opt/feistymeow.org/feisty_meow
-and run this command (the whole unwieldy thing on multiple lines):
+and run this command (the whole unwieldy multiple line chunk inside the bars):
+
-echo pwd outside \$(pwd\) ;
+##############
exec bash -i 3<<EOF 4<&0 <&3
-echo pwd inside is \$(pwd\);
- export FEISTY_MEOW_APEX=\"\$(pwd)\";
- export FEISTY_MEOW_APEX=\$FEISTY_MEOW_APEX;
- export FEISTY_MEOW_SCRIPTS=\$FEISTY_MEOW_APEX/scripts;
- /bin/bash \$FEISTY_MEOW_APEX/scripts/core/reconfigure_feisty_meow.sh;
- source \$FEISTY_MEOW_APEX/scripts/core/launch_feisty_meow.sh;
- exec 3>&- <&4
+ echo -e '\n\n^^^ errors above here indicate potential problems in .bashrc ^^^';
+ export FEISTY_MEOW_APEX=\"\$(pwd)\"; export FEISTY_MEOW_SCRIPTS=\$FEISTY_MEOW_APEX/scripts;
+ export FEISTY_MEOW_SHOW_LAUNCH_GREETING=yes;
+ /bin/bash \$(pwd)/scripts/core/reconfigure_feisty_meow.sh;
+ source \$(pwd)/scripts/core/launch_feisty_meow.sh; exec 3>&- <&4
EOF
+##############
+
-Note that this assumes that the .bashrc file could still need editing to fix
-an erroneous FEISTY_MEOW_APEX variable, so we skip it above when bash runs.
-Check \$HOME/.bashrc to see if a change there will fix the problem.
+This code snippet assumes that the .bashrc file could still need editing to
+fix an erroneous FEISTY_MEOW_APEX variable, so we skip it above when bash
+runs. Check \$HOME/.bashrc to see if a change there will fix the problem.
"
else
# apex is good, so let's make the scripts good too.
- if [ ! -d "$FEISTY_MEOW_SCRIPTS" ]; then
+ if [ -z "$FEISTY_MEOW_SCRIPTS" -o ! -d "$FEISTY_MEOW_SCRIPTS" ]; then
export FEISTY_MEOW_SCRIPTS="$FEISTY_MEOW_APEX/scripts"
fi
# check again to test our belief system...
fi
fi
-#; /bin/bash -i --norc --noprofile\" > \$HOME/fm-fix
-#; exec /bin/bash -i --norc --noprofile -c 'bash \$HOME/fm-fix ; echo hello ; read line; read line ;read line'
-#--norc --noprofile
-#; source \$FEISTY_MEOW_APEX/scripts/core/launch_feisty_meow.sh
-
if [ "$NO_REPAIRS_NEEDED" == "true" ]; then
-echo GOT TO NO REPAIRS PLACE
-read line
-
# we believe it's safe to run through the rest of this script.
##############
# 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
##############
fi
##############
-
+
if [ -z "$ERROR_OCCURRED" ]; then
-
# pull in our generated variables that are the minimal set we need to find
# the rest of our resources.
source "$FEISTY_MEOW_VARIABLES_LOADING_FILE"
##############
if [ -z "$ERROR_OCCURRED" ]; then
-
- # load the larger body of standard feisty meow variables into the environment.
- # we actually want this to always run also; it will decide what variables need
- # to be set again.
+ # no error occurred in our tests above, so load the larger body of standard feisty
+ # meow variables into the environment. we actually want this to always run also;
+ # it will decide what variables need to be set again.
source "$FEISTY_MEOW_SCRIPTS/core/variables.sh"
##############
##############
+#hmmm: abstract this to a twiddle shell options method.
# check hash table before searching path.
shopt -s checkhash
# don't check path for sourced files.
fi # no error occurred.
-else
-echo SOME REPAIRS WERE NEEED
-read line
+ if [ ! -z "$FEISTY_MEOW_SHOW_LAUNCH_GREETING" ]; then
+ echo
+ echo
+ echo "welcome to the feisty meow zone of peace, one of many refuges in the uncountably"
+ echo "infinite multiverses that are hypothetically possible."
+ echo
+ echo
+ 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"
fi # "$NO_REPAIRS_NEEDED" was == "true"