Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
44 lines
896 B
Nix
44 lines
896 B
Nix
{
|
|
lib,
|
|
nix,
|
|
runCommand,
|
|
}:
|
|
let
|
|
nixpkgs =
|
|
with lib.fileset;
|
|
toSource {
|
|
root = ../.;
|
|
fileset = (fileFilter (file: file.hasExt "nix") ../.);
|
|
};
|
|
in
|
|
runCommand "nix-parse-${nix.name}"
|
|
{
|
|
nativeBuildInputs = [
|
|
nix
|
|
];
|
|
}
|
|
''
|
|
export NIX_STORE_DIR=$TMPDIR/store
|
|
export NIX_STATE_DIR=$TMPDIR/state
|
|
|
|
cd "${nixpkgs}"
|
|
|
|
# Passes all files to nix-instantiate at once.
|
|
# Much faster, but will only show first error.
|
|
parse-all() {
|
|
find . -type f -iname '*.nix' | xargs -P $(nproc) nix-instantiate --parse >/dev/null 2>/dev/null
|
|
}
|
|
|
|
# Passes each file separately to nix-instantiate with -n1.
|
|
# Much slower, but will show all errors.
|
|
parse-each() {
|
|
find . -type f -iname '*.nix' | xargs -n1 -P $(nproc) nix-instantiate --parse >/dev/null
|
|
}
|
|
|
|
if ! parse-all; then
|
|
parse-each
|
|
fi
|
|
|
|
touch $out
|
|
''
|