- commit
- b8204a6d85e93d71fa3806bdd3e6fe7f58b720f5
- parent
- 4ee1b8ee1f1c99f200ddee59cd34ffd80fd49dea
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2026-03-05 19:27
add --dump and --restore options to simplify migrations
Diffstat
| M | xikeyring/__main__.py | 26 | ++++++++++++++++++++++++-- |
1 files changed, 24 insertions, 2 deletions
diff --git a/xikeyring/__main__.py b/xikeyring/__main__.py
@@ -1,10 +1,12 @@ 1 1 import argparse 2 2 import os -1 3 import sys 3 4 from pathlib import Path 4 5 5 6 from .dbus import DBusService 6 7 from .dumpable import pr_set 7 8 from .keyring import KeyringProxy -1 9 from .keyring import write_bytes 8 10 9 11 10 12 def get_data_home(): @@ -18,6 +20,16 @@ def get_data_home(): 18 20 def parse_args(): 19 21 parser = argparse.ArgumentParser('xikeyring') 20 22 parser.add_argument( -1 23 '--dump', -1 24 help='print the decryted file and exit', -1 25 action='store_true', -1 26 ) -1 27 parser.add_argument( -1 28 '--restore', -1 29 help='inverse of --dump', -1 30 action='store_true', -1 31 ) -1 32 parser.add_argument( 21 33 '--store', 22 34 '-s', 23 35 help='path to the store file', @@ -33,5 +45,15 @@ pr_set(dumpable=False) 33 45 34 46 args = parse_args() 35 47 keyring = KeyringProxy(args.store)36 -1 service = DBusService(keyring)37 -1 service.run(args.bus)-1 48 if args.dump: -1 49 with open(keyring.path, 'rb') as fh: -1 50 encrypted = fh.read() -1 51 decrypted = keyring.crypt.decrypt(encrypted) -1 52 print(decrypted.decode('utf-8')) -1 53 elif args.restore: -1 54 decrypted = sys.stdin.read().encode('utf-8') -1 55 encrypted = keyring.crypt.encrypt(decrypted) -1 56 write_bytes(keyring.path, encrypted) -1 57 else: -1 58 service = DBusService(keyring) -1 59 service.run(args.bus)