did I do this twice?

This commit is contained in:
2026-06-20 16:39:36 -07:00
parent ff30f63404
commit bceb2bb95b
2 changed files with 182 additions and 0 deletions

86
sync-comfyui-snaps Executable file
View File

@@ -0,0 +1,86 @@
#!/bin/bash
#
# sync-comfyui-snaps — Pull new images from nimo.loc ComfyUI output, sync to NAS,
# then rename AI snaps and organize.
#
# Crontab (every 2 hours):
# 0 */2 * * * /home/schmeeve/.local/bin/sync-comfyui-snaps >> /home/schmeeve/.local/log/sync-comfyui-snaps.log 2>&1
#
# Requires: rsync, SSH key auth to nimo.loc (or runs directly on nimo.loc),
# rename-ai-snaps and organize-images in ~/.local/bin/
#
# NAS credentials file at ~/.smb/mini.nas (chmod 600):
# username=schmeeve
# password=yourpass
# Source is local (this script runs on nimo.loc).
# Set NIMO_HOST to a remote hostname only if running this from another machine.
NIMO_HOST=""
NIMO_USER="schmeeve"
NIMO_SRC="/home/schmeeve/ComfyUI/output"
SHARE="//mini.nas/miniShare1"
NAS_SUBPATH="Pictures"
MOUNTPOINT="${HOME}/mnt/miniShare1"
CREDENTIALS="${HOME}/.smb/mini.nas"
RENAME_SCRIPT="${HOME}/.local/bin/rename-ai-snaps"
ORGANIZE_SCRIPT="${HOME}/.local/bin/organize-images"
START="$(date +%s)"
echo "[sync-comfyui-snaps] Starting at $(date)"
# 1. Mount NAS if not already mounted
if mount | grep -q "${MOUNTPOINT}"; then
echo "[sync-comfyui-snaps] Already mounted at ${MOUNTPOINT}"
else
echo "[sync-comfyui-snaps] Mounting ${SHARE} → ${MOUNTPOINT}"
mkdir -p "${MOUNTPOINT}"
OPTS="username=schmeeve,uid=$(id -u),gid=$(id -g),forceuid,forcegid,nounix,serverino"
if [ -f "${CREDENTIALS}" ]; then
OPTS="${OPTS},credentials=${CREDENTIALS}"
fi
sudo mount -t cifs "${SHARE}" "${MOUNTPOINT}" -o "${OPTS}"
if ! mount | grep -q "${MOUNTPOINT}"; then
echo "[sync-comfyui-snaps] ERROR: Failed to mount ${SHARE}"
exit 1
fi
echo "[sync-comfyui-snaps] Mounted at ${MOUNTPOINT}"
fi
DEST="${MOUNTPOINT}/${NAS_SUBPATH}"
mkdir -p "${DEST}"
# 2. Rsync from nimo.loc ComfyUI output → NAS Pictures
# If running directly on nimo.loc, set NIMO_HOST="" and it will use a local path instead.
if [ -z "${NIMO_HOST}" ] || [ "${NIMO_HOST}" = "localhost" ]; then
SRC="${NIMO_SRC}/"
else
SRC="${NIMO_USER}@${NIMO_HOST}:${NIMO_SRC}/"
fi
echo "[sync-comfyui-snaps] Syncing ${SRC} → ${DEST}/"
rsync -vu --checksum \
--include="*.png" --include="*.jpg" --include="*.jpeg" --include="*.webp" \
--exclude="*" \
--progress --stats \
"${SRC}" "${DEST}/"
# 3. Rename AI snaps (non-interactive for automation)
if [ -x "${RENAME_SCRIPT}" ]; then
echo "[sync-comfyui-snaps] Running rename-ai-snaps on ${DEST}"
"${RENAME_SCRIPT}" "${DEST}" --no-interactive
else
echo "[sync-comfyui-snaps] WARNING: rename-ai-snaps not found at ${RENAME_SCRIPT}"
fi
# 4. Organize images
if [ -x "${ORGANIZE_SCRIPT}" ]; then
echo "[sync-comfyui-snaps] Running organize-images on ${DEST}"
"${ORGANIZE_SCRIPT}" "${DEST}" -e
else
echo "[sync-comfyui-snaps] WARNING: organize-images not found at ${ORGANIZE_SCRIPT}"
fi
DURATION=$(( $(date +%s) - START ))
echo "[sync-comfyui-snaps] Done in ${DURATION}s at $(date)"