diff --git a/install.sh b/install.sh index ee0e172..d052249 100644 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ cp *.ash /recalbox/share/userscripts/ mkdir -p /recalbox/share/system/config/savesync cp *.conf /recalbox/share/system/config/savesync/ -mount -o remount,rw / 2>/dev/null +mount -o remount,rw / >/dev/null curl -L -o /usr/bin/nc https://github.com/therealsaumil/static-arm-bins/raw/refs/heads/master/nc-arm-static chmod 755 /usr/bin/nc -mount -o remount,ro >/dev/null +mount -o remount >/dev/null diff --git a/pub_event[rungame,endgame](sync).ash b/pub_event[rungame,endgame](sync).ash index 93118d7..a1885dc 100644 --- a/pub_event[rungame,endgame](sync).ash +++ b/pub_event[rungame,endgame](sync).ash @@ -23,6 +23,17 @@ log() { [ "$DEBUG_MODE" -eq 1 ] && printf "%s\n" "$log_line" } +# --- Exit function --- +call_exit() { + value="$1" + if [ "$value" -eq 0 ]; then + log "WARN" "pub_event exited normally" + else + log "INFO" "pub_event exited with warnings" + fi + exit "$value" +} + eventfile="/tmp/es_state.inf" # 1. Check if the file exists and is not empty @@ -34,31 +45,30 @@ fi # 2. Read the payload safely PAYLOAD=$(cat "$eventfile") +# 3. Wait for connection to rclone endpoint connect_success=0 -for i in $(seq 10); do - if [ nc -z "$RCLONE_ENDPOINT" "$RCLONE_PORT" -eq 0 ] { - connect_success=1 - break - fi +for i in $(seq 5); do + log "INFO" "Waiting on rclone endpoint... $i" + [ "$(nc -z "$RCLONE_ENDPOINT" "$RCLONE_PORT")" ] || connect_success=1 + [ "$connect_success" ] && break + sleep 0.5 +done -# 3. Publish and log success/failure -if [ mosquitto_pub -h 127.0.0.1 -p 1883 -t "$TOPIC" "$PAYLOAD" -eq 0 ]; then - log "INFO" "Successfully published event." -else +[ "$connect_success" ] || ( log "ERROR" "Remote repository not accessable" && exit 1 ) + +# 4. Publish and log success/failure +if [ "$(mosquitto_pub -h 127.0.0.1 -p 1883 -t "$TOPIC" "$PAYLOAD")" ]; then log "ERROR" "Failed to connect to mosquitto broker." exit 1 +else + log "INFO" "Successfully published event." fi -# 4. Wait for response from daemon +# 5. Wait for response from daemon mosquitto_sub -h 127.0.0.1 -p 1883 -t "$TOPIC" | while IFS="=" read -r key value do case "$key" in - "SaveSync") break;; + "SaveSync") call_exit "$value";; esac done -if [ "$value" -eq 0 ]; then - log "WARN" "pub_event exited normally" -else - log "INFO" "pub_event exited with warnings" -fi diff --git a/savesync[start](permanent).ash b/savesync[start](permanent).ash index 78c349a..59399eb 100644 --- a/savesync[start](permanent).ash +++ b/savesync[start](permanent).ash @@ -20,9 +20,6 @@ log() { [ "$DEBUG_MODE" -eq 1 ] && printf "%s\n" "$log_line" } -# --- Continue message function --- -send_continue() { -} # --- Sleep to ensure that the logger daemon has started --- #