diff --git a/generate_secrets.py b/generate_secrets.py new file mode 100755 index 0000000..2717ece --- /dev/null +++ b/generate_secrets.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +""" +Open the secrets.yml and replace all passwords. +Original is backed up. +""" + +import random +import string +from subprocess import call +from yaml import load, dump + +try: + from yaml import CLoader as Loader, CDumper as Dumper +except ImportError: + from yaml import Loader, Dumper + +# length of generated passwords. +pass_length = 20 + +with open('secrets.yml', 'r') as f: + data = load(f, Loader=Loader) + +for key, value in data.iteritems(): + data[key] = ''.join( + random.choice(string.ascii_letters + string.digits) + for _ in range(pass_length)) + +# Make numbered backups of the secrets file. +call(['cp', '--backup=numbered', 'secrets.yml', 'secrets.yml.bak']) + +with open('secrets.yml', 'w') as f: + dump(data, f, Dumper=Dumper, default_flow_style=False)