let pkgs = import { }; rootSrc = pkgs.nix-gitignore.gitignoreSource [ ] ./.; in rec { utils = import ./utils.nix { pkgs = pkgs; src = rootSrc; baseName = "dotfiles"; }; subtasks = rec { uniqueFeeds = utils.baseTask.overrideAttrs (baseAttrs: { name = "${baseAttrs.name}-unique-feeds"; buildPhase = '' OUT="$(uniq -D <(sort ./newsboat/urls))" [[ $OUT = "" ]] || { echo "Duplicate subscriptions found in ./newsboat/urls:" echo "$OUT" exit 1 } touch $out ''; }); docs = utils.baseTask.overrideAttrs (baseAttrs: { name = "${baseAttrs.name}-docs"; buildPhase = '' mkdir $out cp ${utils.readmeOrg "dotfiles"} $out/index.html cp -Lr public/* $out/ ''; }); }; test = utils.test [ utils.formatNix (utils.shellcheck ".*(encrypted|notmuch-post.sh).*") (utils.fixme [ "default.nix" "utils.nix" ]) subtasks.uniqueFeeds ]; publishScript = utils.overwritingPublishScript { docsDerivation = subtasks.docs; }; }