elmPackages.elm-xref: migrate from internal node-packages.nix set

This commit is contained in:
dish
2025-11-14 18:15:59 -05:00
parent 2767324cf8
commit 3b3da8abf1
8 changed files with 124 additions and 86 deletions
@@ -77,6 +77,8 @@ lib.makeScope pkgs.newScope (
elm-verify-examples = callPackage ./packages/elm-verify-examples { };
elm-xref = callPackage ./packages/elm-xref { };
lamdera = callPackage ./packages/lamdera { };
}
)
@@ -0,0 +1,48 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
elmPackages,
}:
buildNpmPackage (finalAttrs: {
pname = "elm-xref";
version = "4.1.1";
src = fetchFromGitHub {
owner = "zwilias";
repo = "elm-xref";
tag = finalAttrs.version;
hash = "sha256-J58NTSMo2uxpWFnPX+AGHVAqQOiRfgBxYzis/PZp1MA=";
};
npmDepsHash = "sha256-LZynUf2M+g31mia41jw7vmGNugUUUAX/TehDxQ7j+YY=";
nativeBuildInputs = [
elmPackages.elm
];
npmFlags = [ "--ignore-scripts" ];
npmBuildScript = "elm";
postConfigure =
(elmPackages.fetchElmDeps {
elmPackages = import ./elm-srcs.nix;
elmVersion = elmPackages.elm.version;
registryDat = ./registry.dat;
})
+ ''
ln -sf ${lib.getExe elmPackages.elm} node_modules/.bin/elm
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Cross referencing tool for Elm";
homepage = "https://github.com/zwilias/elm-xref";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ pyrox0 ];
mainProgram = "elm-xref";
};
})
@@ -0,0 +1,57 @@
{
"elm/core" = {
sha256 = "1hf4sw78zav7czzgjnc4rn6r7ipj76ya7zbwnjgz7wbs5ijiacmc";
version = "1.0.3";
};
"elm/json" = {
sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh";
version = "1.1.3";
};
"elm/parser" = {
sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512";
version = "1.1.0";
};
"stil4m/elm-syntax" = {
sha256 = "182fz12a115j3wz3fkc209mq8rbbqmvl237pmrvygmvbxwv4ix37";
version = "7.1.1";
};
"elm-community/json-extra" = {
sha256 = "0hwlhdlvd5xi866m9bpnabcg2qrgcvfj34p1x1mhx85ymr3gv9mv";
version = "4.2.0";
};
"elm-community/list-extra" = {
sha256 = "06ddwrc0ai0pn5mw99a1d9xnihkliyvq0qvzn32z1l88msflrib7";
version = "8.2.2";
};
"elm/time" = {
sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1";
version = "1.0.0";
};
"elm/url" = {
sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4";
version = "1.0.0";
};
"rtfeldman/elm-hex" = {
sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d";
version = "1.0.0";
};
"rtfeldman/elm-iso8601-date-strings" = {
sha256 = "1fa5sslklldy0dq8bm0zdkb9ni50yxhb09xb6lgk00x55bmza9ik";
version = "1.1.3";
};
"stil4m/structured-writer" = {
sha256 = "0xr95m8k42vwyff91vfd4q59fhnmhywyj20nzxqhl7blk82hnwj0";
version = "1.0.2";
};
}
+17
View File
@@ -0,0 +1,17 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash -p nix-update elm2nix nixfmt
set -eu -o pipefail
PACKAGE_DIR=$(realpath "$(dirname "$0")")
# Update version, src and npm deps
nix-update "$UPDATE_NIX_ATTR_PATH"
# Update elm deps
cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/elm.json" elm.json
trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT
elm2nix convert >"$PACKAGE_DIR/elm-srcs.nix"
nixfmt "$PACKAGE_DIR/elm-srcs.nix"
elm2nix snapshot
cp registry.dat "$PACKAGE_DIR/registry.dat"
@@ -17,7 +17,6 @@ with self;
with elmLib;
{
inherit (nodePkgs)
elm-xref
elm-git-install
;
@@ -1,5 +1,4 @@
[
"elm-xref",
"create-elm-app",
"elm-optimize-level-2",
"elm-pages",
@@ -3045,15 +3045,6 @@ let
sha512 = "W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==";
};
};
"compare-versions-3.6.0" = {
name = "compare-versions";
packageName = "compare-versions";
version = "3.6.0";
src = fetchurl {
url = "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz";
sha512 = "W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==";
};
};
"component-emitter-1.3.1" = {
name = "component-emitter";
packageName = "component-emitter";
@@ -6951,15 +6942,6 @@ let
sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
};
};
"klaw-2.1.1" = {
name = "klaw";
packageName = "klaw";
version = "2.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/klaw/-/klaw-2.1.1.tgz";
sha512 = "kuInGWCNc98b1ghOqBJfqPOvAKn9HHgm+SdluR5VNfdA7rs7uNsuXGy7CCqsP6pFKPpUoCH4s9o00GEj9xONHg==";
};
};
"kleur-4.1.5" = {
name = "kleur";
packageName = "kleur";
@@ -10218,24 +10200,6 @@ let
sha512 = "RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==";
};
};
"semver-regex-3.1.4" = {
name = "semver-regex";
packageName = "semver-regex";
version = "3.1.4";
src = fetchurl {
url = "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz";
sha512 = "6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==";
};
};
"semver-sort-1.0.0" = {
name = "semver-sort";
packageName = "semver-sort";
version = "1.0.0";
src = fetchurl {
url = "https://registry.npmjs.org/semver-sort/-/semver-sort-1.0.0.tgz";
sha512 = "JicVlQKz/C//4BiPmbHEDou6HihXxo5xqB/8Hm9FaLJ6HHkRRvYgCECq4u/z0XF8kyJQ/KAZt++A/kYz/oOSSg==";
};
};
"send-0.19.0" = {
name = "send";
packageName = "send";
@@ -12588,54 +12552,6 @@ let
};
in
{
elm-xref = nodeEnv.buildNodePackage {
name = "elm-xref";
packageName = "elm-xref";
version = "4.1.1";
src = fetchurl {
url = "https://registry.npmjs.org/elm-xref/-/elm-xref-4.1.1.tgz";
sha512 = "1Cl3pZ8Z8Nd0VIu6277C4l4IMjDJEZuX1jkGZX/YZGdCQvGd1v0pB20NKi+U8YbfyjzaereAHah2eL3eXamn6w==";
};
dependencies = [
sources."bluebird-3.7.2"
sources."compare-versions-3.6.0"
sources."core-util-is-1.0.3"
sources."fs-extra-6.0.1"
sources."graceful-fs-4.2.11"
sources."inherits-2.0.4"
sources."isarray-1.0.0"
sources."jsonfile-4.0.0"
sources."klaw-2.1.1"
sources."minimist-1.2.8"
sources."process-nextick-args-2.0.1"
sources."readable-stream-2.3.8"
sources."safe-buffer-5.1.2"
sources."semver-6.3.1"
sources."semver-regex-3.1.4"
(
sources."semver-sort-1.0.0"
// {
dependencies = [
sources."semver-5.7.2"
];
}
)
sources."string_decoder-1.1.1"
sources."through2-2.0.5"
sources."universalify-0.1.2"
sources."util-deprecate-1.0.2"
sources."xtend-4.0.2"
];
buildInputs = globalBuildInputs;
meta = {
description = "Cross referencing tool for Elm - find usages and unused code";
homepage = "https://github.com/zwilias/elm-xref#readme";
license = "BSD-3-Clause";
};
production = true;
bypassCache = true;
reconstructLock = true;
};
create-elm-app = nodeEnv.buildNodePackage {
name = "create-elm-app";
packageName = "create-elm-app";