Compare commits

...

5 Commits

Author SHA1 Message Date
56cd464a9a Asked for help 2026-02-28 18:15:33 -06:00
8fe9435206 "" 2026-02-28 18:11:21 -06:00
c1dea85bed Updated locksync log function to create logfile 2026-02-28 18:07:31 -06:00
60ed643580 cleaned up after myself 2026-02-28 18:04:50 -06:00
7c966b063b duh 2026-02-28 18:03:49 -06:00
3 changed files with 22 additions and 21 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.bak

View File

@@ -25,15 +25,13 @@ if [[ ! "$ans" =~ ^[yY][eE]?[sS]?$ ]]; then
exit 1;
fi
touch /tmp/savesync
printf "s|RCLONE_PREFIX|%s|\n" "$prefix" >/tmp/savesync
sed -i -e "/tmp/savesync" "savesync[rungame,endgame](sync).ash"
sed -i -e "/tmp/savesync" "locksync.ash"
rm "/tmp/savesync"
printf "Installing scripts...n"
sed -i "s|RCLONE_PREFIX|$prefix|" "savesync[rungame,endgame](sync).ash"
sed -i "s|RCLONE_PREFIX|$prefix|" "locksync.ash"
cp "savesync[rungame,endgame](sync).ash" /recalbox/share/userscripts/
mkdir -p /recalbox/share/userscripts/manual
cp "locksync.ash" /recalbox/share/userscripts/manual/
printf "done\n"
printf "Cleaning up..."
cd .. || {

View File

@@ -5,23 +5,23 @@ export REMOTE_BASE="RCLONE_PREFIX"
export LOG_FILE="/recalbox/share/system/logs/locksync.log"
log() {
# $1 = level
# $2 = message
# Ensure log directory exists
mkdir -p "$(dirname "$LOG_FILE")"
printf "[%s] [%s] %s\n" "$(date '+%Y-%m-%d %H:%M:%S')" "$1" "$2" >>"$LOG_FILE"
}
locks=$(find /recalbox/share/saves -name "*.lock")
if [ -z "$locks" ]; then
log "INFO" "No game locks found"
else
while read -r lockfile; do
lgame="$(echo "$lockfile" | sed 's/\.lock//')"
rgame="$(echo "$lockfile" | sed 's|/recalbox/share/roms/||' | sed 's/\.lock//')"
# Use find to pipe directly into the loop to handle spaces in filenames correctly
find /recalbox/share/saves -name "*.lock" | while read -r lockfile; do
# 1. Get the game path by removing .lock
lgame="${lockfile%.lock}"
# 2. Extract the relative path for the remote
# This removes '/recalbox/share/saves/' from the start of the path
rgame="${lgame#/recalbox/share/saves/}"
if [ -f "$lgame" ]; then
log "INFO" "Game found: $lgame"
else
continue
fi
if rclone copyto "$lgame" "${REMOTE_BASE}/${rgame}"; then
log "INFO" "Game synced: $rgame"
rm "$lockfile"
@@ -29,5 +29,7 @@ else
log "WARN" "Could not sync game $rgame"
log "INFO" "Lockfile $lockfile not removed"
fi
done <"$locks"
else
log "DEBUG" "Lock found for non-existent file: $lgame"
fi
done