import json import sys import yaml def deeply_obfuscate(data): if isinstance(data, dict): return {k: deeply_obfuscate(v) for k, v in data.items()} elif isinstance(data, list): return [deeply_obfuscate(v) for v in data] elif isinstance(data, str) and data.startswith("ENC["): return "fake-secret" else: return data def main(): if len(sys.argv) != 3: print("Usage: fake_sops.py ", file=sys.stderr) sys.exit(1) input_file = sys.argv[1] output_file = sys.argv[2] with open(input_file, 'r') as f: content = f.read() try: data = json.loads(content) except json.JSONDecodeError: try: data = yaml.safe_load(content) except yaml.YAMLError as e: print(f"Error parsing input file as JSON or YAML: {e}", file=sys.stderr) sys.exit(1) obfuscated_data = deeply_obfuscate(data) # Remove sops metadata if "sops" in obfuscated_data: del obfuscated_data["sops"] with open(output_file, 'w') as f: json.dump(obfuscated_data, f, indent=2) if __name__ == "__main__": main()