@@ -368,6 +368,9 @@ def main():
368368 ss .add_argument ("step" ,nargs = "?" ,default = None ,help = "Step name (for set/drop) or second state file (for diff)" )
369369 ss .add_argument ("value" ,nargs = "?" ,default = None ,help = "'done' or 'redo' (for set)" )
370370 ss .add_argument ("--repo" ,default = None )
371+ ss .add_argument ("--set" ,action = "append" ,default = [],metavar = "KEY=VALUE" ,help = "Override a variable (repeatable)" )
372+ ss .add_argument ("--vars-file" ,default = None ,metavar = "FILE" ,help = "Load variable overrides from a file" )
373+ ss .add_argument ("-i" ,"--inventory" ,action = "append" ,default = [],metavar = "FILE" ,help = "Inventory file (repeatable)" )
371374 _add_vault_pass_args (ss )
372375
373376 sr = sub .add_parser ("repo" ); sr .add_argument ("action" ,choices = ["index" ]); sr .add_argument ("--repo" )
@@ -558,13 +561,15 @@ def main():
558561 repo = getattr (args ,"repo" ,None )
559562 graph = None
560563 vault_passphrase , vault_prompt = _resolve_vault_pass_source (args )
564+ extra = _parse_extra_vars (getattr (args ,"set" ,[]), getattr (args ,"vars_file" ,None ))
565+ inv_files = getattr (args ,"inventory" ,[]) or []
561566 need_graph_if_present = {"show" , "reset" , "set" , "drop" , "compact" }
562567 if args .action in need_graph_if_present and not Path (args .file ).exists ():
563568 graph = None
564569 else :
565570 try :
566- graph = _load (args .file , repo_dir = repo , vault_passphrase = vault_passphrase ,
567- vault_prompt = vault_prompt )
571+ graph = _load (args .file , repo_dir = repo , extra_vars = extra , inventory_files = inv_files ,
572+ vault_passphrase = vault_passphrase , vault_prompt = vault_prompt )
568573 except SystemExit :
569574 pass # graph may not parse for show/reset
570575
0 commit comments