diff options
Diffstat (limited to 'cli.py')
| -rwxr-xr-x | cli.py | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +import sys + +import otp + + +def main(): + if len(sys.argv) > 2: + sys.exit("usage: cli.py [name]") + try: + entries = otp.load_entries() + if len(sys.argv) > 1: + name = sys.argv[1] + for n, key, period, digits, digest in entries: + if n == name: + print(otp.totp(key, period, digits, digest)) + return + sys.exit(f"cli: no entry named {name!r}") + for name, key, period, digits, digest in entries: + print(name, otp.totp(key, period, digits, digest)) + except otp.SecretsError as error: + print(f"cli: {error}", file=sys.stderr) + return error.status + + +if __name__ == "__main__": + sys.exit(main()) |