commit e5afbde535aac614b14ed91c820262c84b28d86b
parent 2350d93bf4d978c54746fe85bc9f2b1008738b14
Author: Florian Dold <florian@dold.me>
Date: Tue, 22 Oct 2024 14:30:26 +0200
experimental publish subcommand
Diffstat:
1 file changed, 28 insertions(+), 0 deletions(-)
diff --git a/packaging/ng/taler-pkg b/packaging/ng/taler-pkg
@@ -161,6 +161,22 @@ def show_order(cfg):
print("build order:", buildorder)
+def publish(cfg):
+ distro = cfg.distro
+ vendor, codename = distro.split("-")
+ debs = list(Path(f"./packages/{distro}/").glob("*.deb"))
+ host = "gv.taler.net"
+ if len(debs) == 0:
+ print("nothing to upload")
+ return
+ subprocess.run(["scp", "--", *debs, f"taler-packaging@{host}:{codename}/"], check=True)
+ # FIXME: This fails when packages of the same version are already present.
+ # That's a problem since builds are not bit-reproducible.
+ subprocess.run(["ssh", f"taler-packaging@{host}", f"./include-{codename}.sh"], check=True)
+ subprocess.run(["ssh", f"taler-packaging@{host}", f"./export-{codename}.sh"], check=True)
+ subprocess.run(["ssh", f"taler-packaging@{host}", f"./show-{codename}.sh"], check=True)
+
+
def main():
parser = argparse.ArgumentParser(
prog="taler-pkg", description="Taler Packaging Helper"
@@ -168,20 +184,32 @@ def main():
subparsers = parser.add_subparsers(help="Run a subcommand", metavar="SUBCOMMAND")
+ # subcommand build
+
parser_build = subparsers.add_parser("build", help="Build packages for distro.")
parser_build.set_defaults(func=build)
parser_build.add_argument("distro")
parser_build.add_argument("--dry", help="Dry run", action="store_true", default=False)
+ # subcommand show-latest
+
parser_show_latest = subparsers.add_parser(
"show-latest", help="Show latest version of packages."
)
parser_show_latest.set_defaults(func=print_latest)
+ # subcommand show-order
+
parser_show_order = subparsers.add_parser("show-order", help="Show build order.")
parser_show_order.set_defaults(func=show_order)
parser_show_order.add_argument("roots", nargs="+")
+ # subcommand publish
+
+ parser_publish = subparsers.add_parser("publish", help="Publish to deb.taler.net")
+ parser_publish.add_argument("distro")
+ parser_publish.set_defaults(func=publish)
+
args = parser.parse_args()
if "func" not in args: