forked from cerc-io/stack-orchestrator
Add extra_args support to deploy create command
- Add @click.argument for generic args passthrough to stack commands - Keep explicit --network-dir and --initial-peers options - Add DeploymentContext.get_compose_file() helper - Add DeploymentContext.modify_yaml() helper for stack commands - Update init() to use absolute paths This allows stack-specific create commands to receive arbitrary arguments via: laconic-so deploy create ... -- --custom-arg value Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
86462c940f
commit
ffa00767d4
@@ -44,11 +44,28 @@ class DeploymentContext:
|
||||
def get_compose_dir(self):
|
||||
return self.deployment_dir.joinpath(constants.compose_dir_name)
|
||||
|
||||
def get_compose_file(self, name: str):
|
||||
return self.get_compose_dir() / f"docker-compose-{name}.yml"
|
||||
|
||||
def modify_yaml(self, file_path: Path, modifier_func):
|
||||
"""Load a YAML from the deployment, apply a modifier, and write back."""
|
||||
if not file_path.absolute().is_relative_to(self.deployment_dir):
|
||||
raise ValueError(f"File is not inside deployment directory: {file_path}")
|
||||
|
||||
yaml = get_yaml()
|
||||
with open(file_path, "r") as f:
|
||||
yaml_data = yaml.load(f)
|
||||
|
||||
modifier_func(yaml_data)
|
||||
|
||||
with open(file_path, "w") as f:
|
||||
yaml.dump(yaml_data, f)
|
||||
|
||||
def get_cluster_id(self):
|
||||
return self.id
|
||||
|
||||
def init(self, dir):
|
||||
self.deployment_dir = dir
|
||||
def init(self, dir: Path):
|
||||
self.deployment_dir = dir.absolute()
|
||||
self.spec = Spec()
|
||||
self.spec.init_from_file(self.get_spec_file())
|
||||
self.stack = Stack(self.spec.obj["stack"])
|
||||
|
||||
Reference in New Issue
Block a user