Files
NAHO c8d4dabc43 pkgs: remove optional builtins prefixes from prelude functions
Remove optional builtins prefixes from prelude functions by running:

    builtins=(
      abort
      baseNameOf
      break
      derivation
      derivationStrict
      dirOf
      false
      fetchGit
      fetchMercurial
      fetchTarball
      fetchTree
      fromTOML
      import
      isNull
      map
      null
      placeholder
      removeAttrs
      scopedImport
      throw
      toString
      true
    )

    fd \
      --type file \
      . \
      pkgs \
      --exec-batch sed --in-place --regexp-extended "
        s/\<builtins\.($(
          printf '%s\n' "${builtins[@]}" |
            paste --delimiter '|' --serial -
        ))\>/\1/g
      "

    nix fmt
2025-10-04 19:02:37 +02:00

72 lines
1.3 KiB
Nix

{
lib,
fetchurl,
runCommand,
writeText,
}:
{
name ? "deps",
data,
dontFixup ? true,
...
}@attrs:
let
data' = removeAttrs (if builtins.isPath data then lib.importJSON data else data) [
"!version"
];
urlToPath =
url:
if lib.hasPrefix "https://" url then
(
let
url' = lib.drop 2 (lib.splitString "/" url);
in
"https/${builtins.concatStringsSep "/" url'}"
)
else
builtins.replaceStrings [ "://" ] [ "/" ] url;
code = ''
mkdir -p "$out"
cd "$out"
''
+ builtins.concatStringsSep "" (
lib.mapAttrsToList (
url: info:
let
key = builtins.head (builtins.attrNames info);
val = info.${key};
path = urlToPath url;
name = baseNameOf path;
source =
{
redirect = "$out/${urlToPath val}";
hash = fetchurl {
inherit url;
hash = val;
};
text = writeText name val;
}
.${key} or (throw "Unknown key: ${url}");
in
''
mkdir -p "${dirOf path}"
ln -s "${source}" "${path}"
''
) data'
);
in
runCommand name (
removeAttrs attrs [
"name"
"data"
]
// {
passthru = (attrs.passthru or { }) // {
data = writeText "deps.json" (builtins.toJSON data);
};
}
) code