diff options
Diffstat (limited to 'chip/push')
-rwxr-xr-x | chip/push | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/chip/push b/chip/push new file mode 100755 index 0000000..48a7cc4 --- /dev/null +++ b/chip/push @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 + +import argparse +import os +import subprocess +import tempfile +import importlib.util + +cli = argparse.ArgumentParser(description='deploy a thing') +cli.add_argument('depo', type=str, + help='the depo roun to deploy') + +args = cli.parse_args() + +cwd = os.getcwd() +bild_dir = f"{cwd}/bild" + +src = f"{cwd}/depo/{args.depo}" +out = f"{bild_dir}/{args.depo}" + + +# bild +subprocess.run(["nix-build", "-A", f"depo.{args.depo}", + "--out-link", out]) +print("bilt") + + +p = subprocess.run(["chip/roun", args.depo, "-i"], + stdout=subprocess.PIPE) +ip = p.stdout.decode() + +# push +subprocess.run(["nix", "copy", "--to", f"ssh://root@{ip}", f"{out}"]) +print("sent") + +# switch +subprocess.run(["ssh", f"root@{ip}", "sudo", + f"{os.readlink(out)}/bin/switch-to-configuration", + "switch"]) + +print(f"pushed {args.depo} -> {ip}") |