22 lines
834 B
Nix
22 lines
834 B
Nix
{ lib, stdenvNoCC }:
|
|
# see the substituteAll in the nixpkgs documentation for usage and constraints
|
|
args:
|
|
let
|
|
# keep this in sync with substituteAll
|
|
isInvalidArgName = x: builtins.match "^[a-z][a-zA-Z0-9_]*$" x == null;
|
|
invalidArgs = builtins.filter isInvalidArgName (builtins.attrNames args);
|
|
in
|
|
if invalidArgs == [] then
|
|
stdenvNoCC.mkDerivation ({
|
|
name = if args ? name then args.name else baseNameOf (toString args.src);
|
|
builder = ./substitute-all.sh;
|
|
inherit (args) src;
|
|
preferLocalBuild = true;
|
|
allowSubstitutes = false;
|
|
} // args)
|
|
else throw ''
|
|
Argument names for `pkgs.substituteAll` must:
|
|
- start with a lower case ASCII letter
|
|
- only contain ASCII letters, digits and underscores
|
|
Found invalid argument names: ${lib.concatStringsSep ", " invalidArgs}.
|
|
''
|