nice cleanup removes nastygrams if not configured
authorChris Koeritz <fred@gruntose.com>
Mon, 9 Oct 2017 01:06:19 +0000 (21:06 -0400)
committerChris Koeritz <fred@gruntose.com>
Mon, 9 Oct 2017 01:06:19 +0000 (21:06 -0400)
previously a bunch of errors would spew if the feisty meow launcher script was sourced without the feisty meow scripts having been initialized (or bootstrapped).  now it is much calmer and also provides better information.

scripts/core/launch_feisty_meow.sh

index 9e818341eec7d760db4755824f029df06f53b386..b9ba1d72979fa2818e23aab1698eb07f5e7bf29f 100644 (file)
@@ -45,87 +45,104 @@ if [ -z "$FEISTY_MEOW_LOADING_DOCK" ]; then
   FEISTY_MEOW_VARIABLES_LOADING_FILE="$FEISTY_MEOW_LOADING_DOCK/fmc_variables.sh"
   if [ ! -f "$FEISTY_MEOW_VARIABLES_LOADING_FILE" ]; then
     echo -e '\n\n'
-    echo "Feisty meow scripts need initialization via the bootstrap process, e.g.:"
-    echo "  bash $HOME/feisty_meow/scripts/core/reconfigure_feisty_meow.sh"
-    echo -e '\n\n'
+    echo -e "\
+The feisty meow scripts need initialization via the bootstrap process, which\n\
+can be accomplished if one knows where the scripts are stored.  For example,\n\
+if feisty_meow is in the home directory, then this command will bootstrap the\n\
+script configuration:\n\
+\n\
+  bash $HOME/feisty_meow/scripts/core/reconfigure_feisty_meow.sh\n\
+\n\
+Or, if the feisty_meow folder is installed system-wide in a location such as\n\
+/usr/local/feisty_meow, then this command would bootstrap the scripts:\n\
+\n\
+  bash /usr/local/feisty_meow/scripts/core/reconfigure_feisty_meow.sh\n\
+\n"
     ERROR_OCCURRED=true
   fi
 
   ##############
 
-  # 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
+
+    # 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"
 
-  # Set up the temporary directory.
-  source "$FEISTY_MEOW_SCRIPTS/core/create_tempdir.sh"
+    # Set up the temporary directory.
+    source "$FEISTY_MEOW_SCRIPTS/core/create_tempdir.sh"
+  fi
 
 fi
 
 ##############
 
-# 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"
+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.
+  source "$FEISTY_MEOW_SCRIPTS/core/variables.sh"
+
+  ##############
   
-# include helpful functions.  we do this every time rather than making it part
-# of variable initialization, because functions cannot be exported to
-# sub-shells in bash.
-source "$FEISTY_MEOW_SCRIPTS/core/functions.sh"
+  # include helpful functions.  we do this every time rather than making it part
+  # of variable initialization, because functions cannot be exported to
+  # sub-shells in bash.
+  source "$FEISTY_MEOW_SCRIPTS/core/functions.sh"
   
-# load some helper methods for the terminal which we'll use below.
-source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh"
+  # load some helper methods for the terminal which we'll use below.
+  source "$FEISTY_MEOW_SCRIPTS/tty/terminal_titler.sh"
 
-##############
+  ##############
   
-# check hash table before searching path.
-shopt -s checkhash
-# don't check path for sourced files.
-shopt -u sourcepath
-# ignore duplicate lines.
-HISTCONTROL=ignoredups
-# append to the history file.
-shopt -s histappend
-# automatically update window size if needed.
-shopt -s checkwinsize
+  # check hash table before searching path.
+  shopt -s checkhash
+  # don't check path for sourced files.
+  shopt -u sourcepath
+  # ignore duplicate lines.
+  HISTCONTROL=ignoredups
+  # append to the history file.
+  shopt -s histappend
+  # automatically update window size if needed.
+  shopt -s checkwinsize
 
-##############
-
-# make history writes immediate to avoid losing history if bash is zapped.
-echo $PROMPT_COMMAND | grep -q history
-if [ $? -ne 0 ]; then
-  # we only change the prompt command if we think it hasn't already been done.
-  export PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
-fi
-
-##############
-
-# perform the bulkier parts of the initialization process.
-
-if [ ! -z "$SHELL_DEBUG" ]; then echo "heavyweight init begins..."; fi
+  ##############
 
-# set up the aliases for the shell, but only if they are not already set.
-type CORE_ALIASES_LOADED &>/dev/null
-if [ $? -ne 0 ]; then
-  if [ ! -z "$SHELL_DEBUG" ]; then
-    echo "the aliases were missing, now they are being added..."
+  # make history writes immediate to avoid losing history if bash is zapped.
+  echo $PROMPT_COMMAND | grep -q history
+  if [ $? -ne 0 ]; then
+    # we only change the prompt command if we think it hasn't already been done.
+    export PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
+  fi
+  
+  ##############
+  
+  # perform the bulkier parts of the initialization process.
+  
+  if [ ! -z "$SHELL_DEBUG" ]; then echo "heavyweight init begins..."; fi
+  
+  # set up the aliases for the shell, but only if they are not already set.
+  type CORE_ALIASES_LOADED &>/dev/null
+  if [ $? -ne 0 ]; then
+    if [ ! -z "$SHELL_DEBUG" ]; then
+      echo "the aliases were missing, now they are being added..."
+    fi
+    source "$FEISTY_MEOW_LOADING_DOCK/fmc_core_and_custom_aliases.sh"
+  fi
+  
+  #echo before the new labelling, terminal titles have:
+  #show_terminal_titles
+  
+  # a minor tickle of the title of the terminal, unless we already have some history.
+  label_terminal_with_info
+  
+  if [ ! -z "$SHELL_DEBUG" ]; then echo "heavyweight init is done."; fi
+  
+  if [ -z "$ERROR_OCCURRED" ]; then
+    # set a sentinel variable to say we loaded the feisty meow environment.
+    export FEISTY_MEOW_SCRIPTS_LOADED=true
   fi
-  source "$FEISTY_MEOW_LOADING_DOCK/fmc_core_and_custom_aliases.sh"
-fi
-
-#echo before the new labelling, terminal titles have:
-#show_terminal_titles
-
-# a minor tickle of the title of the terminal, unless we already have some history.
-label_terminal_with_info
-
-if [ ! -z "$SHELL_DEBUG" ]; then echo "heavyweight init is done."; fi
 
-if [ -z "$ERROR_OCCURRED" ]; then
-  # set a sentinel variable to say we loaded the feisty meow environment.
-  export FEISTY_MEOW_SCRIPTS_LOADED=true
-fi
+fi  # no error occurred.