From d51f353cb3ca667957e05699e4f250c9cd4d0882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 17 Feb 2020 17:40:50 +0000 Subject: use writers from nixpkgs This makes the evaluation of krops pure (no import from derivation) and makes it faster since the fetchGit result might be garbage collected. --- pkgs/default.nix | 8 -------- pkgs/krops/default.nix | 20 ++++++++------------ pkgs/populate/default.nix | 6 +++--- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index 682b6b4..76c7f11 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,15 +1,7 @@ { overlays ? [], ... }@args: -let - nix-writers = builtins.fetchGit { - url = https://cgit.krebsco.de/nix-writers/; - rev = "c528cf970e292790b414b4c1c8c8e9d7e73b2a71"; - }; -in - import (args // { overlays = [ (import ./overlay.nix) - (import "${nix-writers}/pkgs") ] ++ overlays; }) diff --git a/pkgs/krops/default.nix b/pkgs/krops/default.nix index 16ef936..07c7395 100644 --- a/pkgs/krops/default.nix +++ b/pkgs/krops/default.nix @@ -2,7 +2,7 @@ let lib = import ../../lib; in -{ exec, nix, openssh, populate, writeDash }: rec { +{ nix, openssh, populate, writers }: rec { build = target: remoteCommand target (lib.concatStringsSep " " [ @@ -18,17 +18,14 @@ in }"; remoteCommand = target: command: - exec "build.${target.host}" rec { - filename = "${openssh}/bin/ssh"; - argv = lib.flatten [ - filename + writers.writeDash "build.${target.host}" '' + exec ${openssh}/bin/ssh ${lib.escapeShellArgs (lib.flatten [ (lib.optionals (target.user != "") ["-l" target.user]) "-p" target.port "-t" target.host - (if target.sudo then "sudo ${command}" else command) - ]; - }; + (if target.sudo then "sudo ${command}" else command)])} + ''; writeCommand = name: { command ? (targetPath: "echo ${targetPath}"), @@ -39,7 +36,7 @@ in }: let target' = lib.mkTarget target; in - writeDash name '' + writers.writeDash name '' set -efu ${populate { inherit backup force source; target = target'; }} ${remoteCommand target' (command target'.path)} @@ -60,7 +57,7 @@ in else lib.mkTarget buildTarget; target' = lib.mkTarget target; in - writeDash name '' + writers.writeDash name '' set -efu ${lib.optionalString (buildTarget' != target') (populate { inherit backup force source; target = buildTarget'; })} @@ -88,7 +85,7 @@ in target' = lib.mkTarget target; in assert lib.isLocalTarget target'; - writeDash name '' + writers.writeDash name '' set -efu ${populate { inherit backup force source; target = target'; }} >&2 NIX_PATH=${lib.escapeShellArg target'.path} \ @@ -99,5 +96,4 @@ in --show-trace \ '' ''; - } diff --git a/pkgs/populate/default.nix b/pkgs/populate/default.nix index acabc02..736376e 100644 --- a/pkgs/populate/default.nix +++ b/pkgs/populate/default.nix @@ -1,7 +1,7 @@ with import ../../lib; with shell; -{ coreutils, dash, findutils, git, jq, openssh, pass, rsync, writeDash }: +{ coreutils, dash, findutils, git, jq, openssh, pass, rsync, writers }: let check = { force, target }: let @@ -145,7 +145,7 @@ let populate = target: name: source: let source' = source.${source.type}; target' = target // { path = "${target.path}/${name}"; }; - in writeDash "populate.${target'.host}.${name}" '' + in writers.writeDash "populate.${target'.host}.${name}" '' set -efu ${pop.${source.type} target' source'} ''; @@ -196,7 +196,7 @@ let in { backup ? false, force ? false, source, target }: -writeDash "populate.${target.host}" '' +writers.writeDash "populate.${target.host}" '' set -efu ${check { inherit force target; }} set -x -- cgit v1.2.3