feat(cli): skip unchanged files using device file_hashes.json
Read and update file_hashes.json on deploy; add --force-upload and tests. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
27
cli.py
27
cli.py
@@ -223,6 +223,10 @@ def _get_ordered_actions(argv: List[str]) -> List[tuple]:
|
||||
actions.append(('upload', ["lib", "lib"]))
|
||||
i += 1
|
||||
continue
|
||||
if arg == '--force-upload':
|
||||
# Handled via argparse; skip during action scan
|
||||
i += 1
|
||||
continue
|
||||
if arg == '--lib':
|
||||
# Upload local DIR (default: ./lib) to /lib on device
|
||||
local_dir = "lib"
|
||||
@@ -486,6 +490,12 @@ Examples:
|
||||
help="Upload ./src (excluding patterns), ./src/patterns, and ./lib."
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--force-upload",
|
||||
action="store_true",
|
||||
help="Upload every file; ignore file_hashes.json on the device",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--patterns", "--paterns",
|
||||
dest="patterns_dir",
|
||||
@@ -587,8 +597,14 @@ Examples:
|
||||
else:
|
||||
print(f"Uploading {upload_dir} to device on {port}...", file=sys.stderr)
|
||||
conn = DeviceConnection(port)
|
||||
files_copied, dirs_created = conn.upload_directory(upload_dir, remote_dir)
|
||||
print(f"Upload complete: {files_copied} files, {dirs_created} directories created.", file=sys.stderr)
|
||||
files_copied, dirs_created, files_skipped = conn.upload_directory(
|
||||
upload_dir, remote_dir, force=args.force_upload
|
||||
)
|
||||
print(
|
||||
f"Upload complete: {files_copied} uploaded, {files_skipped} skipped, "
|
||||
f"{dirs_created} directories created.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"Error uploading directory: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
@@ -616,9 +632,12 @@ Examples:
|
||||
file=sys.stderr,
|
||||
)
|
||||
conn = DeviceConnection(port)
|
||||
files_copied, dirs_created = conn.upload_directory(temp_src, "")
|
||||
files_copied, dirs_created, files_skipped = conn.upload_directory(
|
||||
temp_src, "", force=args.force_upload
|
||||
)
|
||||
print(
|
||||
f"Upload complete: {files_copied} files, {dirs_created} directories created.",
|
||||
f"Upload complete: {files_copied} uploaded, {files_skipped} skipped, "
|
||||
f"{dirs_created} directories created.",
|
||||
file=sys.stderr,
|
||||
)
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user