yesod-mirror/tools/fake_sops.py
Copybara 8157b39ea4
Some checks failed
CI / build (push) Failing after 12s
Project import generated by Copybara.
GitOrigin-RevId: 6370f6ea785709295b6abcf9c60717cacf3ac432
2026-01-20 21:26:21 +00:00

45 lines
1.2 KiB
Python

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 <input_file> <output_file>", 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()