wrap-tag2upload-verify 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #! /usr/bin/python3
  2. # Copyright © 2025, Ansgar <ansgar@debian.org>
  3. # SPDX-License-Identifier: GPL-2.0-or-later
  4. import base64
  5. import json
  6. import subprocess
  7. import sys
  8. from tempfile import NamedTemporaryFile
  9. def encode(data: bytes) -> str:
  10. return base64.standard_b64encode(data).decode("ascii")
  11. with NamedTemporaryFile() as out_sig, NamedTemporaryFile() as out_txt:
  12. result = subprocess.run(
  13. [
  14. "/usr/bin/mini-git-tag-fsck",
  15. "--out-sig",
  16. out_sig.name,
  17. "--out-txt",
  18. out_txt.name,
  19. *sys.argv[1:],
  20. ],
  21. capture_output=True,
  22. )
  23. if result.returncode == 0:
  24. output = {
  25. "result": {
  26. "tag": encode(out_txt.read()),
  27. "signature": encode(out_sig.read()),
  28. }
  29. }
  30. else:
  31. output = {
  32. "error": {
  33. "returncode": result.returncode,
  34. "stderr": encode(result.stderr),
  35. }
  36. }
  37. json.dump(output, sys.stdout)