nice, first bit of auto-help
authorChris Koeritz <fred@gruntose.com>
Mon, 6 Nov 2017 22:44:11 +0000 (22:44 +0000)
committerChris Koeritz <fred@gruntose.com>
Mon, 6 Nov 2017 22:44:11 +0000 (22:44 +0000)
added a diagnostic for when the recustomize script cannot run (when perl doesn't have File::Diff or File::Which yet).

14 files changed:
readme.txt
scripts/buildor/refresh_gffs_build.sh
scripts/core/functions.sh
scripts/customize/fred/scripts/disk_synch/update_barkuptree.sh
scripts/customize/fred/scripts/email/filter_grabber.sh
scripts/customize/fred/scripts/games/gamesaver.sh
scripts/site_avenger/avcoreup.sh
scripts/site_avenger/powerup.sh
scripts/site_avenger/shared_site_mgr.sh
scripts/site_avenger/sitepush.sh
scripts/site_avenger/siteup.sh
scripts/system/add_apache_site.sh
scripts/system/add_swap_mount.sh
scripts/system/naive_system_updater.sh

index bfb4793a38a4cae805657fbf8c2a04492d4532c0..9516af62461ddfa0102ed4a6b76a3bb5ec25e391 100644 (file)
@@ -13,7 +13,7 @@ How to get the feisty meow codebase
 | https://feistymeow.org/feisty_meow/documentation/cygwin_install_list.txt (web)
 
 Retrieve a clone of the feisty meow code:
-=> git clone git://feistymeow.org/feisty_meow
+# git clone git://feistymeow.org/feisty_meow
 
 The remainder of these notes assume that the code is stored in
 ~/feisty_meow (aka $HOME/feisty_meow).
@@ -23,10 +23,10 @@ How to load the feisty meow script environment
 
 Set up the feisty_meow scripts; this is only needed once, when you first get
 the codebase.  It can also regenerate the scripts using the latest version.
-=> bash ~/feisty_meow/scripts/core/reconfigure_feisty_meow.sh
+# bash ~/feisty_meow/scripts/core/reconfigure_feisty_meow.sh
 
 Load the script environment into the current shell.
-=> source ~/feisty_meow/scripts/core/launch_feisty_meow.sh
+# source ~/feisty_meow/scripts/core/launch_feisty_meow.sh
 
 With the feisty meow script environment loaded, several aliases are now
 available for building the codebase and they are used in the sections below.
@@ -44,19 +44,19 @@ differ utility and the feisty meow customization system).  They can be
 installed with either apt-get or CPAN.
 
 Install using apt-get:
-=> sudo apt-get install libfile-which-perl libtext-diff-perl
+# sudo apt-get install libfile-which-perl libtext-diff-perl
 
 or Install using perl's CPAN:
-=> sudo cpan install Text::Diff File::Which
+# sudo cpan install Text::Diff File::Which
 
 ==============
 How to install the build dependencies for feisty meow
 
 | Ubuntu / Debian:
-| => sudo apt-get install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
+| # sudo apt-get install build-essential librtmp-dev libcurl4-gnutls-dev libssl-dev
 
 | Centos / Redhat / Fedora:
-| => sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
+| # sudo yum install gcc gcc-c++ openssl-devel.x86_64 curl-devel
 
 | Microsoft Windows:
 | Download and install the Cygwin environment first from cygwin.com, which is
@@ -66,17 +66,17 @@ How to install the build dependencies for feisty meow
 How to build the feisty meow codebase
 
 Run the following command to build the feisty meow libraries and applications.
-=> bash ~/feisty_meow/scripts/generator/produce_feisty_meow.sh
+# bash ~/feisty_meow/scripts/generator/produce_feisty_meow.sh
 
 After the build is complete, the feisty meow applications can be found in
 $FEISTY_MEOW_BINARIES (environment variable).
-=> ls $FEISTY_MEOW_BINARIES 
+# ls $FEISTY_MEOW_BINARIES 
 
 ==============
 How to clean up the files generated by the build
 
 This command cleans out all the generated files:
-=> bash ~/feisty_meow/scripts/generator/whack_build.sh clean
+# bash ~/feisty_meow/scripts/generator/whack_build.sh clean
 
 ==============
 What are the feisty meow dependencies?
index 2211879584a437e6b40056782d891f34b467b73b..3476b1ba8f8a735f94ad4fcb7ad720d58058ab2a 100644 (file)
@@ -14,12 +14,12 @@ echo cleaning out the logs directory...
 echo making a simple starting log file for container...
 if [ ! -d "$GFFS_LOGS" ]; then
   mkdir -p "$GFFS_LOGS"
-  check_result Making GFFS logs directory.
+  test_or_fail Making GFFS logs directory.
 fi
 
 echo building the code freshly, although not with a clean first...
 build_gffs 
-check_result Building GFFS source code.
+test_or_fail Building GFFS source code.
 
 echo starting container now and spooling its log file...
 (bash $GFFS_TOOLKIT_ROOT/library/maybe_restart_container.sh &>$TMP/main_container_restarting.log & )
index 7240866c1f8bd1c8c4bf0d511b8c796640549009..5c8f430eb9b109aa6b7f34a17e1200f5908574e3 100644 (file)
@@ -121,15 +121,24 @@ if [ -z "$skip_all" ]; then
   # checks the result of the last command that was run, and if that failed,
   # then this complains and exits from bash.  the function parameters are
   # used as the message to print as a complaint.
-  function check_result()
+  function test_or_fail()
   {
     if [ $? -ne 0 ]; then
-      echo -e "failed on: $*"
+      echo -e "\n\nfailed on: $*"
       error_sound
       exit 1
     fi
   }
 
+  # like test_or_fail, but will keep going after complaining.
+  function test_or_continue()
+  {
+    if [ $? -ne 0 ]; then
+      echo -e "\n\nfailed on: $*"
+      error_sound
+    fi
+  }
+
   # wraps secure shell with some parameters we like, most importantly to enable X forwarding.
   function ssh()
   {
@@ -423,18 +432,24 @@ if [ -z "$skip_all" ]; then
     regenerate >/dev/null
     pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
     incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
+
+    local fail_message="\nare the perl dependencies installed?  if you're on ubuntu or debian, try this:\n
+    $(grep "apt.*perl" $FEISTY_MEOW_APEX/readme.txt)\n"
     
     #echo "the incongruous files list is: $incongruous_files"
     # disallow a single character result, since we get "*" as result when nothing exists yet.
     if [ ${#incongruous_files} -ge 2 ]; then
       echo "cleaning unknown older overrides..."
       perl "$FEISTY_MEOW_SCRIPTS/files/safedel.pl" $incongruous_files
+      test_or_continue "running safedel.  $fail_message" 
       echo
     fi
     popd &>/dev/null
     echo "copying custom overrides for $custom_user"
     mkdir -p "$FEISTY_MEOW_LOADING_DOCK/custom" 2>/dev/null
     perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_SCRIPTS/customize/$custom_user" "$FEISTY_MEOW_LOADING_DOCK/custom"
+    test_or_continue "running cpdiff.  $fail_message"
+
     if [ -d "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" ]; then
       echo "copying custom scripts for $custom_user"
       \cp -R "$FEISTY_MEOW_SCRIPTS/customize/$custom_user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/"
@@ -721,7 +736,7 @@ return 0
   
     if [ -d "$src" ]; then
       ln -s "$src" "$target"
-      check_result "Creating symlink from '$src' to '$target'"
+      test_or_fail "Creating symlink from '$src' to '$target'"
     fi
     echo "Created symlink from '$src' to '$target'."
   }
@@ -745,7 +760,7 @@ return 0
     echo running tests on set_var_if_undefined.
     flagrant=petunia
     set_var_if_undefined flagrant forknordle
-    check_result "testing if defined variable would be whacked"
+    test_or_fail "testing if defined variable would be whacked"
     if [ $flagrant != petunia ]; then
       echo set_var_if_undefined failed to leave the test variable alone
       exit 1
index d87999cc9943629972d3b9f1ec25717ee375daf2..bb5492317b13d76f47915c58f8545328dae3df03 100644 (file)
@@ -9,18 +9,18 @@ export BARKY=/media/fred/barkuptreedrive
 
 # copy up the archived bluray discs, and possibly future archived formats.
 netcp /z/archons/* $BARKY/bkup_archons/
-check_result "synching archons"
+test_or_fail "synching archons"
 
 # copy over our somewhat attenuated but still important walrus archives.
 netcp /z/walrus/* $BARKY/walrus/ 
-check_result "synching walrus"
+test_or_fail "synching walrus"
 
 # copy all the music files for future reference.
 netcp /z/musix/* $BARKY/musix/
-check_result "synching musix"
+test_or_fail "synching musix"
 
 # back up the photo archives.
 netcp /z/imaginations/* $BARKY/imaginations/
-check_result "synching imaginations"
+test_or_fail "synching imaginations"
 
 
index 7cff38f3f2acc2a8e62d71c382c7470b3464b63d..5261c8c54571bf4992545d680d1fcad8b58978ed 100644 (file)
@@ -5,9 +5,9 @@
 source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
 
 cp $HOME/.thunderbird/oqv30zg4.default/ImapMail/zooty.koeritz.com/msgFilterRules.dat $CLOUD_BASE/magic_cabinet/mail_filters/zooty_serene_hamstertronic_$(date_stringer).filters
-check_result "copying feistymeow.org filters"
+test_or_fail "copying feistymeow.org filters"
 
 cp $HOME/.thunderbird/oqv30zg4.default/ImapMail/mail.eservices.virginia.edu/msgFilterRules.dat $CLOUD_BASE/magic_cabinet/mail_filters/uva_email_$(date_stringer).filters 
-check_result "copying UVa filters"
+test_or_fail "copying UVa filters"
 
 
index 43aa8d411a2b6bdc8ab94adad9654422f2f30c71..767ded0beabc66d80ed2b8f083de928f2af0cc63 100644 (file)
@@ -20,7 +20,7 @@ fi
 
 if [ ! -d "$SPOOLING_OUTPUT_DIR" ]; then
   mkdir -p "$SPOOLING_OUTPUT_DIR"
-  check_result Creating spooling output directory.
+  test_or_fail Creating spooling output directory.
 fi
 
 # copies the files for a particular game out to a spooling folder.
index 7ae0b6bacb7e0e8346fa848eb77775a2e902515e..2fc6e46cbb6a6a62cc2ba9c949accdb8e379d6af 100644 (file)
@@ -36,7 +36,7 @@ full_app_dir="$APPLICATION_DIR/$app_dirname"
 # simplistic approach here; just go to the folder and pull the changes.
 
 pushd "$full_app_dir" &>/dev/null
-check_result "Changing to app path '$full_app_dir'"
+test_or_fail "Changing to app path '$full_app_dir'"
 
 dir="avenger5/vendor/siteavenger/avcore"
 if [ ! -d $dir ]; then
@@ -45,7 +45,7 @@ else
   pushd "$dir" &>/dev/null
 
   git pull
-  check_result "Pulling git repo for avcore under '$full_app_dir'"
+  test_or_fail "Pulling git repo for avcore under '$full_app_dir'"
 
   echo "Finished updating the avcore portion of site in ${app_dirname}."
 
index 93ae3d4205eca3a93eb8794c566d3b1640ab710d..b5cd0a897d989410eba20b9ec5b6e2a308e809fa 100644 (file)
@@ -86,12 +86,12 @@ sep
 
 # this should set the site_store_path variable if everything goes well.
 update_repo "$full_app_dir" "$CHECKOUT_DIR_NAME" "$DEFAULT_REPOSITORY_ROOT" "$repo_name"
-check_result "Updating the repository storage directory"
+test_or_fail "Updating the repository storage directory"
 
 # update the site to load dependencies.
 sep
 composer_repuff "$site_store_path"
-check_result "Installing site dependencies with composer"
+test_or_fail "Installing site dependencies with composer"
 
 # set up the symbolic links needed to achieve siteliness.
 sep
index 3bd96658aa237c626a7c707fee760570aa666143..ceefcc5b91674ae02d1c6897be33d0a50c625e75 100644 (file)
@@ -17,7 +17,7 @@ function check_application_dir()
   if [ ! -d "$appdir" ]; then
     echo "Creating the apps directory: $appdir"
     mkdir "$appdir"
-    check_result "Making apps directory when not already present"
+    test_or_fail "Making apps directory when not already present"
   fi
 }
 
@@ -47,7 +47,7 @@ function find_app_folder()
     exit 1
   elif [ $numdirs -eq 1 ]; then
     app_dirname="$(basename $(find "$appsdir" -mindepth 1 -maxdepth 1 -type d) )"
-    check_result "Guessing application folder"
+    test_or_fail "Guessing application folder"
   else
     # if more than one folder, force user to choose.
     # Reference: https://askubuntu.com/questions/1705/how-can-i-create-a-select-menu-in-a-shell-script
@@ -68,7 +68,7 @@ function find_app_folder()
     PS3="$holdps3"
   fi
   test_app_folder "$appsdir" "$app_dirname"
-  check_result "Testing application folder: $app_dirname"
+  test_or_fail "Testing application folder: $app_dirname"
 
   echo "Application folder is: $app_dirname"
 }
@@ -84,7 +84,7 @@ function test_app_folder()
   if [ ! -d "$combo" ]; then
     echo "Creating app directory: $combo"
     mkdir "$combo"
-    check_result "Making application directory when not already present"
+    test_or_fail "Making application directory when not already present"
   fi
 }
 
@@ -95,17 +95,17 @@ function fix_site_perms()
 
   if [ -f "$site_dir/bin/cake" ]; then
     chmod -R a+rx "$site_dir/bin/cake"
-    check_result "Enabling execute bit on cake binary"
+    test_or_fail "Enabling execute bit on cake binary"
   fi
 
   if [ -d "$site_dir/logs" ]; then
     chmod -R g+w "$site_dir/logs"
-    check_result "Enabling group write on site's Logs directory"
+    test_or_fail "Enabling group write on site's Logs directory"
   fi
 
   if [ -d "$site_dir/tmp" ]; then
     chmod -R g+w "$site_dir/tmp"
-    check_result "Enabling group write on site's tmp directory"
+    test_or_fail "Enabling group write on site's tmp directory"
   fi
 }
 
@@ -117,7 +117,7 @@ function clear_orm_cache()
   if [ -f "$site_dir/bin/cake" ]; then
     # flush any cached objects from db.
     "$site_dir/bin/cake" orm_cache clear
-    check_result "Clearing ORM cache"
+    test_or_fail "Clearing ORM cache"
   fi
 }
 
@@ -137,7 +137,7 @@ function update_repo()
   unset site_store_path
 
   pushd "$full_app_dir" &>/dev/null
-  check_result "Switching to our app dir '$full_app_dir'"
+  test_or_fail "Switching to our app dir '$full_app_dir'"
 
   local complete_path="$full_app_dir/$checkout_dirname"
 
@@ -147,7 +147,7 @@ function update_repo()
   if [ -d "$checkout_dirname" ]; then
     # checkout directory exists, so let's check it.
     pushd "$checkout_dirname" &>/dev/null
-    check_result "Switching to our checkout directory: $checkout_dirname"
+    test_or_fail "Switching to our checkout directory: $checkout_dirname"
 
     # ask for repository name (without .git).
     if git rev-parse --git-dir > /dev/null 2>&1; then
@@ -169,12 +169,12 @@ function update_repo()
     # a repository was found, so update the version here and leave.
     echo "Repository $repo_name exists.  Updating it."
     rgetem
-    check_result "Recursive checkout on: $complete_path"
+    test_or_fail "Recursive checkout on: $complete_path"
   else
     # clone the repo since it wasn't found.
     echo "Cloning repository $repo_name now."
     git clone "$repo_root/$repo_name.git" $checkout_dirname
-    check_result "Git clone of repository: $repo_name"
+    test_or_fail "Git clone of repository: $repo_name"
   fi
 
   fix_site_perms "$complete_path"
@@ -193,12 +193,12 @@ function composer_repuff()
   local site_store_path="$1"; shift
 
   pushd "$site_store_path" &>/dev/null
-  check_result "Switching to our app dir '$site_store_path'"
+  test_or_fail "Switching to our app dir '$site_store_path'"
 
   echo "Updating site with composer..."
 
   composer -n install
-  check_result "Composer installation step on '$site_store_path'."
+  test_or_fail "Composer installation step on '$site_store_path'."
   echo "Site updated."
 
 #hmmm: argh global
@@ -232,13 +232,13 @@ function create_site_links()
 
   # jump into the site path so we can start making relative links.
   pushd "$site_store_path" &>/dev/null
-  check_result "Switching to our app dir '$site_store_path'"
+  test_or_fail "Switching to our app dir '$site_store_path'"
 
   pushd webroot &>/dev/null
 
   # remove all symlinks that might plague us.
   find . -maxdepth 1 -type l -exec rm -f {} ';'
-  check_result "Cleaning out links in webroot"
+  test_or_fail "Cleaning out links in webroot"
 
   # link in the avcore plugin.
   make_safe_link "../vendor/siteavenger/avcore/webroot" avcore
@@ -265,18 +265,18 @@ function create_site_links()
   if [ -L public ]; then
     # public is a symlink.
     \rm public
-    check_result "Removing public directory symlink"
+    test_or_fail "Removing public directory symlink"
   elif [ -d public ]; then
     # public is a folder with default files.
 #hmmm: is that safe?
     \rm -rf public
-    check_result "Removing public directory and contents"
+    test_or_fail "Removing public directory and contents"
   fi
 
   # create the main 'public' symlink
 #hmmm: argh global
   make_safe_link $CHECKOUT_DIR_NAME/webroot public
-  check_result "Creating link to webroot called 'public'"
+  test_or_fail "Creating link to webroot called 'public'"
 
 #hmmm: public/$themelower/im will be created automatically by system user with appropriate permissions
 
index b88689b630bf219fd0f51c58539676483740a264..7d0a76a2c94b4f6dddda029becb591e97c5de2ad 100644 (file)
@@ -44,7 +44,7 @@ sep
 
 # this should set the site_store_path variable if everything goes well.
 update_repo "$full_app_dir" "$CHECKOUT_DIR_NAME" "$DEFAULT_REPOSITORY_ROOT" "$repo_name"
-check_result "Updating the repository storage directory"
+test_or_fail "Updating the repository storage directory"
 
 sep
 
index 205f342e080b6d29127cab6e4a666358f010367a..511a561734bfdad51925a69afe95162efd36bcff 100644 (file)
@@ -44,7 +44,7 @@ sep
 
 # this should set the site_store_path variable if everything goes well.
 update_repo "$full_app_dir" "$CHECKOUT_DIR_NAME" "$DEFAULT_REPOSITORY_ROOT" "$repo_name"
-check_result "Updating the repository storage directory"
+test_or_fail "Updating the repository storage directory"
 
 ####
 
index 909604bbe118b65adc2e590da8c5a1933e52b29e..b341c9c2e4f0ea34b0bacc26b10c725a8e747fe8 100644 (file)
@@ -96,7 +96,7 @@ function maybe_create_site_storage()
   local full_path="$BASE_PATH/$our_app"
   if [ ! -d "$full_path" ]; then
     mkdir -p $full_path
-    check_result "The app storage path could not be created.\n  Path in question is: $full_path"
+    test_or_fail "The app storage path could not be created.\n  Path in question is: $full_path"
   fi
 
   # now give the web server some access to the folder.  this is crucial since the folders
@@ -108,10 +108,10 @@ function maybe_create_site_storage()
   while [[ $chow_path != $HOME ]]; do
 echo chow path is now $chow_path
     chmod g+rx "$chow_path"
-    check_result "Failed to add group permissions on the path: $chow_path"
+    test_or_fail "Failed to add group permissions on the path: $chow_path"
     # reassert the user's ownership of any directories we might have just created.
     chown $(logname) "$chow_path"
-    check_result "changing ownership to user failed on the path: $chow_path"
+    test_or_fail "changing ownership to user failed on the path: $chow_path"
     chow_path="$(dirname "$chow_path")"
   done
 }
index f20c5cb6c0bb2f96d11337f902645cf9f3f429bc..6dacb7707c715bdf97590726280bb5540bb036be 100644 (file)
@@ -9,16 +9,16 @@ source "$WORKDIR/../core/launch_feisty_meow.sh"
 #hmmm: why all the hard-coded paths below?
 
 /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
-check_result "creating swap file"
+test_or_fail "creating swap file"
 
 /bin/chmod 600 /var/swap.1
-check_result "setting swap file permissions"
+test_or_fail "setting swap file permissions"
 
 /sbin/mkswap /var/swap.1
-check_result "formatting swap file as swap partition"
+test_or_fail "formatting swap file as swap partition"
 
 /sbin/swapon /var/swap.1
-check_result "enabling new swap partition"
+test_or_fail "enabling new swap partition"
 
 free
 
index 08cd526647dad3869d960888c92a576542cfdc68..a6d65e969a1aff476929515b277b2f320fd579c7 100644 (file)
@@ -2,9 +2,9 @@
 source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
 
 sudo apt-get update -y
-check_result "problem while doing 'apt-get update'"
+test_or_fail "problem while doing 'apt-get update'"
 # new magic to tell dpkg to go with existing config files.  let's see if it works!
 sudo apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold"
-check_result "problem while doing 'apt-get dist-upgrade'"
+test_or_fail "problem while doing 'apt-get dist-upgrade'"