prepare-gpgsm-params 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/usr/bin/env python3
  2. # PYTHON_ARGCOMPLETE_OK
  3. import dateutil.parser
  4. import pytz
  5. def fill_template(template, subject_keygrip, issuer_keygrip, expiry_datetime):
  6. print(template.read().strip().format(**{
  7. 'subject-keygrip': subject_keygrip,
  8. 'issuer-keygrip': issuer_keygrip,
  9. 'not-after': dateutil.parser.parse(expiry_datetime)
  10. .astimezone(pytz.utc)
  11. .replace(tzinfo=None)
  12. .isoformat(sep=' '),
  13. }))
  14. def _init_argparser():
  15. import argparse
  16. argparser = argparse.ArgumentParser(description=None)
  17. argparser.add_argument(
  18. '--template',
  19. type=argparse.FileType('r'),
  20. required=True,
  21. )
  22. argparser.add_argument(
  23. '--subject-keygrip',
  24. type=str,
  25. required=True,
  26. )
  27. argparser.add_argument(
  28. '--issuer-keygrip',
  29. type=str,
  30. required=True,
  31. )
  32. argparser.add_argument(
  33. '--expiry-datetime',
  34. type=str,
  35. required=True,
  36. )
  37. return argparser
  38. def main(argv):
  39. argparser = _init_argparser()
  40. try:
  41. import argcomplete
  42. argcomplete.autocomplete(argparser)
  43. except ImportError:
  44. pass
  45. args = argparser.parse_args(argv)
  46. fill_template(**vars(args))
  47. return 0
  48. if __name__ == "__main__":
  49. import sys
  50. sys.exit(main(sys.argv[1:]))