diff options
-rw-r--r-- | machines/profpatsch/shiki.nix | 4 | ||||
-rw-r--r-- | pkgs/profpatsch/default.nix | 4 | ||||
-rw-r--r-- | pkgs/profpatsch/deploy.nix | 36 |
3 files changed, 44 insertions, 0 deletions
diff --git a/machines/profpatsch/shiki.nix b/machines/profpatsch/shiki.nix index a3baab6e..9bcb9ec9 100644 --- a/machines/profpatsch/shiki.nix +++ b/machines/profpatsch/shiki.nix @@ -270,6 +270,10 @@ in { exe = pkgs.vuizvui.profpatsch.nix-eval; name = "nix-eval"; }) + (pkgs.vuizvui.profpatsch.binify { + exe = pkgs.vuizvui.profpatsch.deploy; + name = "deploy"; + }) # myPkgs.zoomboxed ]; in systemPkgs ++ xPkgs ++ guiPkgs diff --git a/pkgs/profpatsch/default.nix b/pkgs/profpatsch/default.nix index 774d6a9c..ed1bc427 100644 --- a/pkgs/profpatsch/default.nix +++ b/pkgs/profpatsch/default.nix @@ -119,6 +119,10 @@ in rec { readGitignoreFile ; + inherit (import ./deploy.nix { inherit pkgs getBins; }) + deploy + ; + backlight = callPackage ./backlight { inherit (pkgs.xorg) xbacklight; }; display-infos = callPackage ./display-infos { inherit sfttime; }; git-commit-index = callPackage ./git-commit-index { inherit script; }; diff --git a/pkgs/profpatsch/deploy.nix b/pkgs/profpatsch/deploy.nix new file mode 100644 index 00000000..c85ef45e --- /dev/null +++ b/pkgs/profpatsch/deploy.nix @@ -0,0 +1,36 @@ +# The only deployment tool that anybody should take seriously +{ pkgs, getBins }: + +let + bins = getBins pkgs.coreutils [ "realpath" ] + // getBins pkgs.openssh [ "ssh" ] + // getBins pkgs.nix [ "nix-build" "nix-copy-closure" ] + ; + + deploy = pkgs.writers.writeDash "deploy-machine-profpatsch" '' + set -e + MACHINE="''${1?please set machine as first argument}" + OUT_LINK="system-$MACHINE" + + ${bins.nix-build} \ + --show-trace \ + --out-link "$OUT_LINK" \ + -I "nixpkgs=$HOME/nixpkgs" \ + -A "machines.profpatsch.$MACHINE.build" \ + "$HOME/vuizvui" + + ${bins.nix-copy-closure} \ + --to "ssh://$MACHINE?compress=true" \ + "$OUT_LINK" + + ${bins.ssh} \ + "root@$MACHINE" \ + "$(${bins.realpath} $OUT_LINK)/bin/switch-to-configuration" \ + "switch" + ''; + +in { + inherit + deploy + ; +} |