You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

35 lines
859 B

#!/usr/bin/env python
"""
Open the secrets.yml and replace all passwords.
Original is backed up.
"""
from os import path
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.topol', '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.
if path.isfile('secrets.yml'):
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)