#!/bin/ash #shellcheck shell=dash export REMOTE_BASE="RCLONE_PREFIX" export LOG_FILE="/recalbox/share/system/logs/locksync.log" log() { # $1 = level # $2 = message touch "$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//')" 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" else log "WARN" "Could not sync game $rgame" log "INFO" "Lockfile $lockfile not removed" fi done <"$locks" fi