diff --git a/pkgs/clan-cli/clan_cli/inventory/__init__.py b/pkgs/clan-cli/clan_cli/inventory/__init__.py index 1295b63a5..7cb188c1c 100644 --- a/pkgs/clan-cli/clan_cli/inventory/__init__.py +++ b/pkgs/clan-cli/clan_cli/inventory/__init__.py @@ -522,7 +522,9 @@ def get_inventory_with_writeable_keys( @API.register -def set_inventory(inventory: Inventory, flake_dir: str | Path, message: str) -> None: +def set_inventory( + inventory: Inventory, flake_dir: str | Path, message: str, commit: bool = True +) -> None: """ Write the inventory to the flake directory and commit it to git with the given message @@ -553,7 +555,8 @@ def set_inventory(inventory: Inventory, flake_dir: str | Path, message: str) -> with inventory_file.open("w") as f: json.dump(persisted, f, indent=2) - commit_file(inventory_file, Path(flake_dir), commit_message=message) + if commit: + commit_file(inventory_file, Path(flake_dir), commit_message=message) @API.register diff --git a/pkgs/clan-cli/clan_cli/machines/create.py b/pkgs/clan-cli/clan_cli/machines/create.py index c54309f86..3c901d2b7 100644 --- a/pkgs/clan-cli/clan_cli/machines/create.py +++ b/pkgs/clan-cli/clan_cli/machines/create.py @@ -39,7 +39,7 @@ class CreateOptions: @API.register -def create_machine(opts: CreateOptions) -> None: +def create_machine(opts: CreateOptions, commit: bool = True) -> None: if not opts.clan_dir.is_local: msg = f"Clan {opts.clan_dir} is not a local clan." description = "Import machine only works on local clans" @@ -115,11 +115,12 @@ def create_machine(opts: CreateOptions) -> None: # Commit at the end in that order to avoid committing halve-baked machines # TODO: automatic rollbacks if something goes wrong - commit_file( - clan_dir / "machines" / machine_name, - repo_dir=clan_dir, - commit_message=f"Add machine {machine_name}", - ) + if commit: + commit_file( + clan_dir / "machines" / machine_name, + repo_dir=clan_dir, + commit_message=f"Add machine {machine_name}", + ) def create_command(args: argparse.Namespace) -> None: