1. import json
  2. import argparse
  3. def load_config(config_file):
  4. """Loads configuration from a JSON file."""
  5. try:
  6. with open(config_file, 'r') as f:
  7. config = json.load(f)
  8. return config
  9. except FileNotFoundError:
  10. print(f"Error: Config file not found: {config_file}")
  11. return None
  12. except json.JSONDecodeError:
  13. print(f"Error: Invalid JSON format in {config_file}")
  14. return None
  15. def dry_run_with_metadata(config, parameters):
  16. """Simulates a dry run with injected parameters."""
  17. if config is None:
  18. return
  19. # Access parameters from the config or default values
  20. param1 = parameters.get('param1', config.get('param1', 'default_value_1'))
  21. param2 = parameters.get('param2', config.get('param2', 123))
  22. param3 = parameters.get('param3', config.get('param3', True))
  23. # Simulate some action using the parameters
  24. print(f"Running dry run with param1: {param1}, param2: {param2}, param3: {param3}")
  25. # Replace this with your actual dry-run logic
  26. if __name__ == "__main__":
  27. parser = argparse.ArgumentParser(description="Dry-run script with metadata injection.")
  28. parser.add_argument("config_file", help="Path to the configuration JSON file.")
  29. parser.add_argument("--param1", help="Value for param1 (optional).")
  30. parser.add_argument("--param2", type=int, help="Value for param2 (optional, integer).")
  31. parser.add_argument("--param3", action="store_true", help="Value for param3 (optional, boolean).")
  32. args = parser.parse_args()
  33. config = load_config(args.config_file)
  34. if config:
  35. parameters = {
  36. 'param1': args.param1,
  37. 'param2': args.param2,
  38. 'param3': args.param3
  39. }
  40. dry_run_with_metadata(config, parameters)

Add your comment