diff --git a/shell.nix b/shell.nix index 4b7d64c..f15521d 100644 --- a/shell.nix +++ b/shell.nix @@ -2,47 +2,49 @@ let inherit (pkgs) lib; - dependencies = let nixosVersion = "20.03"; - in { + dependencies = let nixosVersion = "20.03"; in { nixpkgs = { ref = "refs/heads/nixos-${nixosVersion}"; url = "https://github.com/NixOS/nixpkgs-channels.git"; - path = ".versions/nixpkgs.json"; + path = toString .versions/nixpkgs.json; }; nixpkgs-unstable = { ref = "refs/heads/nixos-unstable"; url = "https://github.com/NixOS/nixpkgs-channels.git"; - path = ".versions/nixpkgs-unstable.json"; + path = toString .versions/nixpkgs-unstable.json; }; home-manager = { ref = "refs/heads/release-${nixosVersion}"; url = "https://github.com/rycee/home-manager.git"; - path = ".versions/home-manager.json"; + path = toString .versions/home-manager.json; }; krops = { ref = "refs/tags/v1.21.0"; url = "https://cgit.krebsco.de/krops"; - path = ".versions/krops.nix"; + path = toString .versions/krops.nix; }; stockholm = { ref = "refs/heads/master"; url = "https://cgit.krebsco.de/stockholm"; - path = ".versions/stockholm.json"; + path = toString .versions/stockholm.json; }; }; - updateScript = name: dependency: '' - ${pkgs.nix-prefetch-git}/bin/nix-prefetch-git --url "${dependency.url}" --rev "${dependency.ref}" > "${toString ./.}/${dependency.path}"''; + updateCommand = name: dependency: '' + ${pkgs.nix-prefetch-git}/bin/nix-prefetch-git --url "${dependency.url}" --rev "${dependency.ref}" > "${dependency.path}"''; updateScripts = lib.mapAttrsToList - (name: dependency: pkgs.writers.writeDashBin "niveum-update-${name}" (updateScript name dependency)) + (name: dependency: pkgs.writers.writeDashBin "niveum-update-${name}" (updateCommand name dependency)) dependencies; - updateAllScript = pkgs.writers.writeDashBin "niveum-update" (lib.concatStringsSep " &\n" (lib.mapAttrsToList updateScript dependencies)); in pkgs.mkShell { - buildInputs = updateScripts ++ [ updateAllScript ] ++ [ + buildInputs = updateScripts ++ [ + + (pkgs.writers.writeDashBin "niveum-update" + (lib.concatStringsSep " &\n" (lib.mapAttrsToList updateCommand dependencies))) + (let deployCommand = pkgs.writers.writeDash "niveum-deploy-one" '' eval "$(${pkgs.nix}/bin/nix-build --no-out-link "${toString ./.}/deploy.nix" -A "$1")" @@ -56,8 +58,8 @@ in pkgs.mkShell { version_file=/etc/niveum/version - machine_status () { - hostname="$1" + for system in systems/*; do + hostname="$(${pkgs.coreutils}/bin/basename "$system")" if commit_id="$(${pkgs.openssh}/bin/ssh "$hostname" cat $version_file 2>/dev/null)"; then machine_status="$(${pkgs.git}/bin/git log -1 --oneline "$commit_id")" @@ -66,13 +68,9 @@ in pkgs.mkShell { fi printf "\033[1m%11s\033[0m %s\n" "$hostname" "$machine_status" - } - - for system in systems/*; do - hostname="$(basename "$system")" - machine_status "$hostname" done '') + ]; shellHook = "export HISTFILE=${toString ./.history}";