From 47811b22c2eab93e70dd64968f363ab1e8bb2337 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Mon, 19 Nov 2018 02:04:26 +0100 Subject: [PATCH] nix/os/devices: refactor expressions --- Justfile | 4 ++-- nix/os/devices/default.nix | 30 ++++++++++++++++++++++++++++++ nix/os/devices/disk.nix | 25 +++++-------------------- 3 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 nix/os/devices/default.nix diff --git a/Justfile b/Justfile index ad0b2cb..721df5b 100755 --- a/Justfile +++ b/Justfile @@ -1,10 +1,10 @@ _usage: just -l -_device action dir +moreargs="": +_device recipe dir +moreargs="": #!/usr/bin/env bash set -ex - sudo $(set -x; nix-build --no-link --show-trace $(dirname {{dir}})/default.nix -A {{action}} --argstr dir {{dir}} {{moreargs}}) + sudo $(set -x; nix-build --no-link --show-trace $(dirname {{dir}})/default.nix -A recipes.{{recipe}} --argstr dir {{dir}} {{moreargs}}) _render_templates: #!/usr/bin/env bash diff --git a/nix/os/devices/default.nix b/nix/os/devices/default.nix new file mode 100644 index 0000000..23741c8 --- /dev/null +++ b/nix/os/devices/default.nix @@ -0,0 +1,30 @@ +{ pkgs ? import {} +, ownLib ? import ../lib/default.nix { } +, dir +, rebuildarg +, moreargs ? "" +, diskId ? (import ((builtins.getEnv "PWD")+"/${dir}/hw.nix") {}).hardware.encryptedDisk.diskId +, gitRoot ? "$(git rev-parse --show-toplevel)" +}: + +let + rebuild = pkgs.writeScript "script" '' + #!/usr/bin/env bash + set -xe + + pushd ${gitRoot}/${dir} + export NIXOS_CONFIG="$PWD"/configuration.nix + + [[ -e "''${NIXOS_CONFIG}" ]] + + nixos-rebuild -I nixos-config=''${NIXOS_CONFIG} ${rebuildarg} ${moreargs} + if test -L result; then + rm result + fi + ''; + +in { + recipes = { + inherit rebuild; + } // (import ./disk.nix { inherit pkgs ownLib dir rebuildarg moreargs diskId gitRoot; }); +} diff --git a/nix/os/devices/disk.nix b/nix/os/devices/disk.nix index d31596b..4490311 100644 --- a/nix/os/devices/disk.nix +++ b/nix/os/devices/disk.nix @@ -1,31 +1,16 @@ -{ pkgs ? import {} -, ownLib ? import ../lib/default.nix { } +{ pkgs +, ownLib , dir , rebuildarg -, moreargs ? "" -, diskId ? (import ((builtins.getEnv "PWD")+"/${dir}/hw.nix") {}).hardware.encryptedDisk.diskId -, gitRoot ? "$(git rev-parse --show-toplevel)" +, moreargs +, diskId +, gitRoot }: let mntRootVol="/mnt/${diskId}-root"; in rec { - rebuild = pkgs.writeScript "script" '' - #!/usr/bin/env bash - set -xe - - pushd ${gitRoot}/${dir} - export NIXOS_CONFIG="$PWD"/configuration.nix - - [[ -e "''${NIXOS_CONFIG}" ]] - - nixos-rebuild -I nixos-config=''${NIXOS_CONFIG} ${rebuildarg} ${moreargs} - if test -L result; then - rm result - fi - ''; - diskMount = pkgs.writeScript "script" '' #!/usr/bin/env bash set -xe