Updating the sync logic

This commit is contained in:
2026-05-09 14:42:42 +02:00
parent dac6dfc48b
commit 3a9e5d17e9
+9 -26
View File
@@ -57,6 +57,8 @@ Examples:
gnommo -p video1 transcribe --final Transcribe outputted file and generate SRT for YouTube gnommo -p video1 transcribe --final Transcribe outputted file and generate SRT for YouTube
gnommo -p video1 archive Sync project to external cache storage gnommo -p video1 archive Sync project to external cache storage
gnommo -p video1 archive --dry-run Preview what would be synced gnommo -p video1 archive --dry-run Preview what would be synced
gnommo -p video1 up Upload project files to remote server
gnommo -p video1 down Download project files from remote server
gnommo -p video1 extract-audio --combined Extract audio from narration_combined.mov gnommo -p video1 extract-audio --combined Extract audio from narration_combined.mov
gnommo -p video1 extract-audio --combined --channel left Extract left channel only gnommo -p video1 extract-audio --combined --channel left Extract left channel only
gnommo -p video1 extract-audio --segment seg01 Extract from a specific segment gnommo -p video1 extract-audio --segment seg01 Extract from a specific segment
@@ -96,7 +98,8 @@ Examples:
"description", "description",
"archive", "archive",
"load", "load",
"sync", "up",
"down",
"extract-audio", "extract-audio",
"master", "master",
"push", "push",
@@ -198,11 +201,6 @@ Examples:
action="store_true", action="store_true",
help="For transcode: compress _processed.mov files (with alpha) using HEVC+alpha instead of narration files", help="For transcode: compress _processed.mov files (with alpha) using HEVC+alpha instead of narration files",
) )
parser.add_argument(
"--down",
action="store_true",
help="For sync: download from server to local (default is upload)",
)
parser.add_argument( parser.add_argument(
"--alpha-quality", "--alpha-quality",
type=float, type=float,
@@ -278,8 +276,10 @@ Examples:
return cmd_archive(project_path, args.verbose, args.dry_run) return cmd_archive(project_path, args.verbose, args.dry_run)
elif action == "load": elif action == "load":
return cmd_load(project_path, args.verbose, args.dry_run) return cmd_load(project_path, args.verbose, args.dry_run)
elif action == "sync": elif action == "up":
return cmd_sync(project_path, args.verbose, args.dry_run, args.down) return cmd_sync(project_path, args.verbose, args.dry_run, download=False)
elif action == "down":
return cmd_sync(project_path, args.verbose, args.dry_run, download=True)
elif action == "extract-audio": elif action == "extract-audio":
return cmd_extract_audio( return cmd_extract_audio(
project_path, args.verbose, args.segment, args.channel, args.combined project_path, args.verbose, args.segment, args.channel, args.combined
@@ -3180,24 +3180,6 @@ def cmd_sync(project_path: Path, verbose: bool, dry_run: bool, download: bool) -
print(" path = /gnommo/project") print(" path = /gnommo/project")
return 1 return 1
# Auto-detect direction: if the caller didn't explicitly pass --down, check
# whether there are local source files to upload. If raw_mov/ is empty (or
# missing) we almost certainly want to pull from the server instead.
if not download:
_video_exts = {".mov", ".mp4", ".avi", ".mkv", ".m4v"}
raw_mov_dir = project_path / "media" / "narration" / "raw_mov"
has_local_sources = raw_mov_dir.exists() and any(
f.suffix.lower() in _video_exts
for f in raw_mov_dir.iterdir()
if f.is_file()
)
if not has_local_sources:
print(
" Note: no local source files found in media/narration/raw_mov/ — "
"switching to download mode."
)
download = True
direction = "Downloading from" if download else "Uploading to" direction = "Downloading from" if download else "Uploading to"
print(f"{direction} server: {project_path.name}") print(f"{direction} server: {project_path.name}")
@@ -3232,6 +3214,7 @@ def cmd_sync(project_path: Path, verbose: bool, dry_run: bool, download: bool) -
print(f"Error: could not create remote directory {remote_dir}") print(f"Error: could not create remote directory {remote_dir}")
return 1 return 1
rsync_cmd = [ rsync_cmd = [
"rsync", "rsync",
"-av", "-av",