diff --git a/unRAID Userscript/music_sync.sh b/unRAID Userscript/music_sync.sh index 22f5735..0e37766 100644 --- a/unRAID Userscript/music_sync.sh +++ b/unRAID Userscript/music_sync.sh @@ -103,12 +103,14 @@ log "========================================" log "START RUN (DRY_RUN=$DRY_RUN)" log "========================================" +CHANGED=false + # ---------------------------------------- # 1. INCOMING → READY # ---------------------------------------- log "---- MOVE: INCOMING → READY ----" -find "$INCOMING" -type f -mmin +1 | while read -r FILE; do +while read -r FILE; do [ -f "$FILE" ] || continue @@ -120,7 +122,7 @@ find "$INCOMING" -type f -mmin +1 | while read -r FILE; do log "MOVE -> $REL" run_cmd mv "$FILE" "$TARGET" -done +done < <(find "$INCOMING" -type f -mmin +1) # ---------------------------------------- # 2. READY → DESTS @@ -129,7 +131,7 @@ log "---- SYNC: READY → DESTINATIONS ----" log "DEST1: $DEST1" log "DEST2: $DEST2" -find "$READY" -type f 2>/dev/null | while read -r FILE; do +while read -r FILE; do [ -f "$FILE" ] || continue @@ -150,23 +152,25 @@ find "$READY" -type f 2>/dev/null | while read -r FILE; do STATUS2=$? if [[ $STATUS1 -eq 0 && $STATUS2 -eq 0 ]]; then - - log "SET OWNER -> $REL" - - DIR1="$(dirname "$DEST1_FILE")" - DIR2="$(dirname "$DEST2_FILE")" - - run_cmd chown -R "$CHOWN_USER:$CHOWN_GROUP" "$DIR1" - run_cmd chown -R "$CHOWN_USER:$CHOWN_GROUP" "$DIR2" - + CHANGED=true log "OK -> delete $REL" run_cmd rm "$FILE" - else log "ERROR -> $REL (dest1=$STATUS1 dest2=$STATUS2)" fi -done +done < <(find "$READY" -type f 2>/dev/null) + +# ---------------------------------------- +# 3. FIX OWNERSHIP (SMART) +# ---------------------------------------- +log "CHANGED=$CHANGED" + +if [ "$CHANGED" = true ]; then +log "FIX OWNERSHIP -> DEST1 + DEST2" + run_cmd chown -R "$CHOWN_USER:$CHOWN_GROUP" "$DEST1" + run_cmd chown -R "$CHOWN_USER:$CHOWN_GROUP" "$DEST2" +fi # ---------------------------------------- # CLEANUP