diff options
author | EuAndreh <eu@euandre.org> | 2019-05-20 21:52:07 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2019-05-20 21:55:21 -0300 |
commit | 8e3421b0ad3280e906fe8a6a75171a3276788295 (patch) | |
tree | ade3ca889cd7d7ad66ddd44a9af81e24f3245026 | |
parent | Remove ./configuration.nix (diff) | |
download | dotfiles-8e3421b0ad3280e906fe8a6a75171a3276788295.tar.gz dotfiles-8e3421b0ad3280e906fe8a6a75171a3276788295.tar.xz |
Refactor default.nix to use a baseTask
-rw-r--r-- | default.nix | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/default.nix b/default.nix index 9ce1e8a..b6e85bd 100644 --- a/default.nix +++ b/default.nix @@ -1,35 +1,40 @@ let pkgs = import <nixpkgs> {}; + rootSrc = pkgs.nix-gitignore.gitignoreSource [] ./.; + baseTask = pkgs.stdenv.mkDerivation { + name = "dotfiles-task"; + src = rootSrc; + buildInputs = []; + phases = "unpackPhase buildPhase"; + buildPhase = '' + echo "ERROR: base task buildPhase not overriden." + exit 1 + ''; + }; in with pkgs; with pkgs.stdenv; rec { subtasks = rec { - shellcheck = mkDerivation rec { - name = "dotfiles-shellcheck"; - src = ./.; - phases = "unpackPhase buildPhase"; - buildInputs = [ pkgs.shellcheck ]; + shellcheck = baseTask.overrideAttrs(baseAttrs: { + name = "${baseAttrs.name}-shellcheck"; + buildInputs = baseAttrs.buildInputs ++ [ pkgs.shellcheck ]; buildPhase = '' export SHELLCHECK_OPTS="-e SC1090 -e SC1091 -e SC2139" ignored='(encrypted|os-installation.sh|notmuch-post.sh)' find . -type f -name '*.sh' | grep -E -v $ignored | xargs shellcheck touch $out ''; - }; - fixme = mkDerivation { - name = "dotfiles-fixme"; - src = ./.; - phases = "unpackPhase buildPhase"; - buildInputs = [ pkgs.ag ]; + }); + fixme = baseTask.overrideAttrs(baseAttrs: { + name = "${baseAttrs.name}-fixme"; + buildInputs = baseAttrs.buildInputs ++ [ ag ]; buildPhase = '' ag FIXME --ignore default.nix || { touch $out } ''; - }; + }); }; - test = mkDerivation rec { - name = "dotfiles-test"; - src = ./.; - phases = "unpackPhase buildPhase"; + test = baseTask.overrideAttrs(baseAttrs: rec { + name = "${baseAttrs.name}-test"; buildInputs = [ subtasks.shellcheck subtasks.fixme @@ -42,5 +47,5 @@ in with pkgs; with pkgs.stdenv; rec { echo "All tests passed!" touch $out ''; - }; + }); } |