nix/os/devices: refactor expressions

This commit is contained in:
steveej 2018-11-19 02:04:26 +01:00
parent e8d6e32d01
commit 47811b22c2
3 changed files with 37 additions and 22 deletions

View file

@ -1,10 +1,10 @@
_usage: _usage:
just -l just -l
_device action dir +moreargs="": _device recipe dir +moreargs="":
#!/usr/bin/env bash #!/usr/bin/env bash
set -ex 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: _render_templates:
#!/usr/bin/env bash #!/usr/bin/env bash

View file

@ -0,0 +1,30 @@
{ pkgs ? import <nixpkgs> {}
, 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; });
}

View file

@ -1,31 +1,16 @@
{ pkgs ? import <nixpkgs> {} { pkgs
, ownLib ? import ../lib/default.nix { } , ownLib
, dir , dir
, rebuildarg , rebuildarg
, moreargs ? "" , moreargs
, diskId ? (import ((builtins.getEnv "PWD")+"/${dir}/hw.nix") {}).hardware.encryptedDisk.diskId , diskId
, gitRoot ? "$(git rev-parse --show-toplevel)" , gitRoot
}: }:
let let
mntRootVol="/mnt/${diskId}-root"; mntRootVol="/mnt/${diskId}-root";
in rec { 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" '' diskMount = pkgs.writeScript "script" ''
#!/usr/bin/env bash #!/usr/bin/env bash
set -xe set -xe