From 42707d29c994c30956608b9c9f10cbaf1d00add4 Mon Sep 17 00:00:00 2001 From: Dmitry Bogatov Date: Mon, 25 Jan 2021 00:00:00 +0000 Subject: [PATCH] nix-sys: generate build system inside of build system This makes debugging easier that when installation exists only inside Nix "installPhase". --- system-v2/nix-sys/all.do | 2 +- system-v2/nix-sys/default.nix | 6 +----- system-v2/nix-sys/install.in | 6 ++++++ system-v2/nix-sys/install.sh.do | 7 +++++++ 4 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 system-v2/nix-sys/install.in create mode 100644 system-v2/nix-sys/install.sh.do diff --git a/system-v2/nix-sys/all.do b/system-v2/nix-sys/all.do index 165b939..2ebf378 100755 --- a/system-v2/nix-sys/all.do +++ b/system-v2/nix-sys/all.do @@ -1,2 +1,2 @@ #!/bin/sh -exec redo-ifchange nix-sys .gitignore +exec redo-ifchange .gitignore nix-sys install.sh diff --git a/system-v2/nix-sys/default.nix b/system-v2/nix-sys/default.nix index 7e520f4..eeed40e 100644 --- a/system-v2/nix-sys/default.nix +++ b/system-v2/nix-sys/default.nix @@ -19,11 +19,7 @@ in stdenv.mkDerivation { > conf/feature-chattr ''; buildPhase = "redo"; - installPhase = '' - mkdir -p $out/bin - install -m555 ./nix-sys $out/bin/nix-sys - mv index.cdb $cdb - ''; + installPhase = "./install.sh"; postFixup = "rm -fr $out/nix-support"; manifest = builtins.toJSON manifest; } diff --git a/system-v2/nix-sys/install.in b/system-v2/nix-sys/install.in new file mode 100644 index 0000000..05229b7 --- /dev/null +++ b/system-v2/nix-sys/install.in @@ -0,0 +1,6 @@ +#!/bin/sh -eu +redo + +install -d "@out@/bin" +install -m 755 ./nix-sys "@out@/bin" +install -m 444 ./index.cdb "@cdb@" diff --git a/system-v2/nix-sys/install.sh.do b/system-v2/nix-sys/install.sh.do new file mode 100644 index 0000000..e84b859 --- /dev/null +++ b/system-v2/nix-sys/install.sh.do @@ -0,0 +1,7 @@ +#!/bin/sh +redo-ifchange conf/out conf/cdb install.in +out=$(cat conf/out) +cdb=$(cat conf/cdb) + +sed -e "s#@out@#${out}#g" -e "s#@cdb@#${cdb}#g" < install.in > "$3" +chmod +x "$3" -- 2.38.5