formatting
[feisty_meow.git] / scripts / customize / fred / scripts / games / gamesaver.sh
index 767ded0beabc66d80ed2b8f083de928f2af0cc63..4f183ce5d095530e78a2f1d9e292c4e188339548 100644 (file)
@@ -5,24 +5,6 @@
 
 source "$FEISTY_MEOW_SCRIPTS/core/launch_feisty_meow.sh"
 
-#we are missing the netcp thing.  why????
-
-WINE_SOURCE_DIR="$HOME/wine_goods/My Games"
-SPOOLING_OUTPUT_DIR="$HOME/data/spooling_saves"
-
-if [ ! -d "$WINE_SOURCE_DIR" ]; then
-  WINE_SOURCE_DIR="/cygdrive/c/users/fred/My Documents/My Games"
-fi
-if [ ! -d "$WINE_SOURCE_DIR" ]; then
-  echo "Failing to find the game save directories."
-  exit 1
-fi
-
-if [ ! -d "$SPOOLING_OUTPUT_DIR" ]; then
-  mkdir -p "$SPOOLING_OUTPUT_DIR"
-  test_or_fail Creating spooling output directory.
-fi
-
 # copies the files for a particular game out to a spooling folder.
 function copyem()
 {
@@ -30,34 +12,79 @@ function copyem()
   source_dir="$1"; shift
   out_dir="$1"; shift
 
-  if [ -d "$source_dir" ]; then
+  if [ -d "$source_dir" -a $(ls "$source_dir" 2>/dev/null | wc -c) != 0 ]; then
     echo $game_name
-#old    cp -v -n "$source_dir"/* "$out_dir"/
+    if [ ! -d "$out_dir" ]; then
+      mkdir -p "$out_dir"
+      exit_on_error "Creating storage dir: $out_dir"
+    fi
     netcp "$source_dir"/* "$out_dir"/
     sep 28
   fi
 }
 
-# make the output folders if they don't exist.
-for i in skyrim fallout_new_vegas fallout_3/Saves oblivion fallout_4/Saves ; do
-  if [ ! -d "$SPOOLING_OUTPUT_DIR/$i" ]; then
-    mkdir -p "$SPOOLING_OUTPUT_DIR/$i"
+##############
+
+# run through and copy our save files from the potentially weird locations they reside in.
+# this requires a single argument, which is the top-level directory of the game storage.
+function copy_all_save_games()
+{
+  local WINE_GOODS_DIR="$1"
+
+  local WINE_GAMES_DIR="$WINE_GOODS_DIR/My Games"
+  local SPOOLING_OUTPUT_DIR="$HOME/data/spooling_saves"
+
+  if [ ! -d "$WINE_GAMES_DIR" ]; then
+    echo "Failing to find the game save directories."
+    exit 1
   fi
-done
 
-# now run through and copy our save files from the potentially weird locations
-# they reside in.
+  if [ ! -d "$SPOOLING_OUTPUT_DIR" ]; then
+    mkdir -p "$SPOOLING_OUTPUT_DIR"
+    exit_on_error Creating spooling output directory.
+  fi
+
+  sep 28
+
+  copyem "skyrim" "$WINE_GAMES_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim"
+
+  copyem "fallout new vegas" "$WINE_GAMES_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas"
+
+  copyem "fallout 3" "$WINE_GAMES_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3"
 
-sep 28
+  copyem "oblivion" "$WINE_GAMES_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/"
 
-copyem "skyrim" "$WINE_SOURCE_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim"
+  copyem "fallout 4" "$WINE_GAMES_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4"
 
-copyem "fallout new vegas" "$WINE_SOURCE_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas"
+  copyem "witcher 3" "$WINE_GOODS_DIR/The Witcher 3/gamesaves" "$SPOOLING_OUTPUT_DIR/witcher_3"
+}
 
-copyem "fallout 3" "$WINE_SOURCE_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3/Saves"
+####
 
-copyem "oblivion" "$WINE_SOURCE_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/"
+# mainline of script tries out a few locations to back up.
 
-copyem "fallout 4" "$WINE_SOURCE_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4/Saves"
+# first try our play on linux storage.  very individualized for fred.
+wine_goods_dir="$HOME/linx/wine_goods"
+# hmmm, this second attempt is a gloss over differences on windows, where some steam games might save to the my documents folder?
+if [ ! -d "$wine_goods_dir" ]; then
+  wine_goods_dir="/cygdrive/c/users/fred/My Documents"
+fi
+if [ ! -d "$wine_goods_dir" ]; then
+  echo "not trying to back up any wine goods; could not find an appropriate folder."
+else
+  copy_all_save_games "$wine_goods_dir"
+fi
+
+# now try the main linux steam save game storage area, which is also fred specific.
+# this uses a link in the home directory called steam_goods which is connected to
+# "$HOME/.steam/steam/SteamApps/compatdata/MYNUM/pfx/drive_c/users/steamuser/My Documents"
+# where MYNUM is replaced with one's steam ID number.
+wine_goods_dir="$HOME/linx/steam_goods"
+if [ ! -d "$wine_goods_dir" ]; then
+  echo "not trying to back up any steam goods; could not find an appropriate folder."
+else
+  copy_all_save_games "$wine_goods_dir"
+fi
 
+####