X-Git-Url: https://feistymeow.org/gitweb/?a=blobdiff_plain;f=scripts%2Fcustomize%2Ffred%2Fscripts%2Fgames%2Fgamesaver.sh;h=9f08189adc15f17bbe886620243f1344817adcd8;hb=e457bafb67c54df92c87b6b4c28a7dd62c812947;hp=80cdfd98327919c4ea1052412550551901953fad;hpb=b7188fb75f87d5c455a48852ce742c8e3150ce7a;p=feisty_meow.git diff --git a/scripts/customize/fred/scripts/games/gamesaver.sh b/scripts/customize/fred/scripts/games/gamesaver.sh index 80cdfd98..9f08189a 100644 --- a/scripts/customize/fred/scripts/games/gamesaver.sh +++ b/scripts/customize/fred/scripts/games/gamesaver.sh @@ -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_die Creating spooling output directory. -fi - # copies the files for a particular game out to a spooling folder. function copyem() { @@ -30,34 +12,75 @@ 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 + + if [ ! -d "$SPOOLING_OUTPUT_DIR" ]; then + mkdir -p "$SPOOLING_OUTPUT_DIR" + exit_on_error Creating spooling output directory. fi -done -# now run through and copy our save files from the potentially weird locations -# they reside in. + 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" -sep 28 + copyem "fallout 3" "$WINE_GAMES_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3" -copyem "skyrim" "$WINE_SOURCE_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim" + copyem "oblivion" "$WINE_GAMES_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/" -copyem "fallout new vegas" "$WINE_SOURCE_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas" + copyem "fallout 4" "$WINE_GAMES_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4" -copyem "fallout 3" "$WINE_SOURCE_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3/Saves" + copyem "witcher 3" "$WINE_GOODS_DIR/The Witcher 3/gamesaves" "$SPOOLING_OUTPUT_DIR/witcher_3" +} -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" +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