From f0b9d862a5e54fa7f9159636ce5a90ef3360231f Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Fri, 5 Feb 2021 11:34:05 +0100 Subject: pkgs/profpatsch: add deploy Small script to deploy my machines. --- machines/profpatsch/shiki.nix | 4 ++++ pkgs/profpatsch/default.nix | 4 ++++ pkgs/profpatsch/deploy.nix | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 pkgs/profpatsch/deploy.nix 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 + ; +} -- cgit 1.4.1