aboutsummaryrefslogtreecommitdiff
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix39
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
'';
- };
+ });
}