import os
import json
def mirror_config(config_dir, output_dir, fallback_config="default.json"):
"""Mirrors configuration files from a source directory to a destination directory,
using a fallback configuration if a file is missing.
"""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
for filename in os.listdir(config_dir):
if filename.endswith(".json"):
source_path = os.path.join(config_dir, filename)
output_path = os.path.join(output_dir, filename)
try:
with open(source_path, "r") as f:
config_data = json.load(f) # Load config data
with open(output_path, "w") as f:
json.dump(config_data, f, indent=4) # Write config data to output
print(f"Mirrored: {filename}")
except FileNotFoundError:
print(f"Error: File not found: {filename}. Using fallback.")
try:
with open(fallback_config, "r") as f:
fallback_data = json.load(f)
with open(output_path, "w") as f:
json.dump(fallback_data, f, indent=4)
print(f"Mirrored using fallback: {filename}")
except FileNotFoundError:
print(f"Error: Fallback file not found: {fallback_config}. Skipping {filename}")
except json.JSONDecodeError:
print(f"Error: Invalid JSON in fallback file {fallback_config}. Skipping {filename}")
except json.JSONDecodeError:
print(f"Error: Invalid JSON in {filename}. Skipping {filename}")
if __name__ == "__main__":
# Example Usage:
config_directory = "config_files" # Directory containing config files
output_directory = "mirrored_configs" # Directory to store mirrored configs
mirror_config(config_directory, output_directory)
Add your comment