Asked for help

This commit is contained in:
2026-02-28 18:15:33 -06:00
parent 8fe9435206
commit 56cd464a9a
2 changed files with 19 additions and 17 deletions

1
.gitignore vendored Normal file
View File

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

View File

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