Doval

retrocloud_sync_saves.sh

Dec 7th, 2023 (edited)
1,181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.55 KB | Gaming | 0 0
  1. #!/bin/bash
  2.  
  3. rclone --version >/dev/null
  4. if (( "$?" == 127 )); then
  5.   echo "ERROR: rclone is not installed" >&2
  6.   exit 1
  7. fi
  8.  
  9. if [[ ! -f /media/fat/rclone.conf ]]; then
  10.   echo "ERROR: /media/fat/rclone.conf is missing" >&2
  11.   exit 1
  12. fi
  13.  
  14. declare -A SYSTEM_DIRS=(
  15.   [GAMEBOY]="Nintendo - Game Boy"
  16.   [GBA]="Nintendo - Game Boy Advance"
  17.   [Genesis]="Sega - Mega Drive - Genesis"
  18.   [MegaCD]="Sega - Mega-CD - Sega CD"
  19.   [N64]="Nintendo - Nintendo 64"
  20.   [NEOGEO]="FBNeo - Arcade Games"
  21.   [NES]="Nintendo - Nintendo Entertainment System"
  22.   [PSX]="Sony - PlayStation"
  23.   [S32X]="Sega - 32X"
  24.   [SMS]="Sega - Master System - Mark III"
  25.   [SNES]="Nintendo - Super Nintendo Entertainment System"
  26.   [TGFX16]="NEC - PC Engine - TurboGrafx 16"
  27.   [TGFX16-CD]="NEC - PC Engine CD - TurboGrafx-CD"
  28. )
  29.  
  30. rm -rf /tmp/retrocloud
  31. mkdir -p /tmp/retrocloud/saves
  32. cd /tmp/retrocloud/saves
  33.  
  34. for LOCAL_DIR in "${!SYSTEM_DIRS[@]}"; do
  35.   CLOUD_DIR="${SYSTEM_DIRS[$LOCAL_DIR]}"
  36.   mkdir -p "$CLOUD_DIR"
  37.   for SAVE_FILE in /media/fat/saves/"$LOCAL_DIR"/*.sav; do
  38.     ln -s "$SAVE_FILE" "./$CLOUD_DIR/$(basename "${SAVE_FILE%.sav}").srm"
  39.   done
  40.   rclone copy --config="/media/fat/rclone.conf" \
  41.     --copy-links \
  42.     --progress \
  43.     "$CLOUD_DIR" RetroCloud:RetroCloud/saves/"$CLOUD_DIR"
  44.   rclone copy --config="/media/fat/rclone.conf" \
  45.     --copy-links \
  46.     --progress \
  47.     RetroCloud:RetroCloud/saves/"$CLOUD_DIR" "$CLOUD_DIR"
  48.   rclone copy --config="/media/fat/rclone.conf" \
  49.     --copy-links \
  50.     --progress \
  51.     "$CLOUD_DIR" /media/fat/saves/"$LOCAL_DIR"
  52. done
Advertisement
Add Comment
Please, Sign In to add comment