#!/usr/bin/python # # Take posted keyring data and store it somewhere. Hand it back on demand. # ################# import cgi STORAGE = '/path/to/a/file/keyring.json' # Datestamped backups stored here BACKUP = '/path/to/a/directory' def show_form(msg=''): print """Content-type: text/html Enter data """ if msg: print "

", msg, "

\n" print """

Enter data

Data:
""" def get_data(): try: storage = open(STORAGE, 'r') except: print "Content-type: text/plain\n\nERROR reading", STORAGE return data = storage.read() storage.close() print "Content-type: text/plain\n\n", data def post_data(data): try: storage = open(STORAGE, 'w') storage.write(data) storage.close() except: print "Content-type: text/plain\n\nERROR writing", STORAGE return backup_fname = os.path.join(BACKUP, datetime.date.isoformat(datetime.date.today()) + '.json') try: backup = open(backup_fname, 'w') backup.write(data) backup.close() except: print "Content-type: text/plain\n\nERROR writing", backup_fname return print "Content-type: text/plain\n\nOK" if __name__ == '__main__': form = cgi.FieldStorage() if not form: get_data() elif form.has_key('form'): show_form() else: post_data(form.getfirst('data'))