From 9837de0da7885ff76628494ba5c97384c3655623 Mon Sep 17 00:00:00 2001 From: Ilan Joselevich Date: Sun, 16 Feb 2025 00:43:26 +0700 Subject: [PATCH] elm-land: Rewrite and migrate from elmPackages to pkgs/by-name Signed-off-by: Ilan Joselevich --- .editorconfig | 2 +- pkgs/by-name/el/elm-land/elm-srcs.nix | 67 + pkgs/by-name/el/elm-land/package.nix | 71 + pkgs/by-name/el/elm-land/registry.dat | Bin 0 -> 349 bytes .../compilers/elm/packages/node/default.nix | 41 +- .../elm/packages/node/node-composition.nix | 2 +- .../elm/packages/node/node-packages.json | 1 - .../elm/packages/node/node-packages.nix | 4442 ++++++++--------- 8 files changed, 2164 insertions(+), 2462 deletions(-) create mode 100644 pkgs/by-name/el/elm-land/elm-srcs.nix create mode 100644 pkgs/by-name/el/elm-land/package.nix create mode 100644 pkgs/by-name/el/elm-land/registry.dat diff --git a/.editorconfig b/.editorconfig index 29e0a4aa8566..ce32c88d7c90 100644 --- a/.editorconfig +++ b/.editorconfig @@ -90,7 +90,7 @@ indent_style = unset insert_final_newline = unset trim_trailing_whitespace = unset -[pkgs/development/compilers/elm/registry.dat] +[registry.dat] end_of_line = unset insert_final_newline = unset diff --git a/pkgs/by-name/el/elm-land/elm-srcs.nix b/pkgs/by-name/el/elm-land/elm-srcs.nix new file mode 100644 index 000000000000..154eeb6de42e --- /dev/null +++ b/pkgs/by-name/el/elm-land/elm-srcs.nix @@ -0,0 +1,67 @@ +{ + + "elm/browser" = { + sha256 = "0nagb9ajacxbbg985r4k9h0jadqpp0gp84nm94kcgbr5sf8i9x13"; + version = "1.0.2"; + }; + + "elm/core" = { + sha256 = "19w0iisdd66ywjayyga4kv2p1v9rxzqjaxhckp8ni6n8i0fb2dvf"; + version = "1.0.5"; + }; + + "elm/html" = { + sha256 = "1n3gpzmpqqdsldys4ipgyl1zacn0kbpc3g4v3hdpiyfjlgh8bf3k"; + version = "1.0.0"; + }; + + "elm/json" = { + sha256 = "0kjwrz195z84kwywaxhhlnpl3p251qlbm5iz6byd6jky2crmyqyh"; + version = "1.1.3"; + }; + + "stil4m/elm-syntax" = { + sha256 = "1dlk7gslh9la6y7y3d56a37lsymmz32rlspbywcfmq40mq9hiify"; + version = "7.2.9"; + }; + + "elm-community/list-extra" = { + sha256 = "043iwpdwyrfb1jndxh7kf7xlkgq1v6pjczv1r1b19p2wky6nmy8z"; + version = "8.5.2"; + }; + + "elm/parser" = { + sha256 = "0a3cxrvbm7mwg9ykynhp7vjid58zsw03r63qxipxp3z09qks7512"; + version = "1.1.0"; + }; + + "elm/time" = { + sha256 = "0vch7i86vn0x8b850w1p69vplll1bnbkp8s383z7pinyg94cm2z1"; + version = "1.0.0"; + }; + + "elm/url" = { + sha256 = "0av8x5syid40sgpl5vd7pry2rq0q4pga28b4yykn9gd9v12rs3l4"; + version = "1.0.0"; + }; + + "elm/virtual-dom" = { + sha256 = "1yvb8px2z62xd578ag2q0r5hd1vkz9y7dfkx05355iiy1d7jwq4v"; + version = "1.0.3"; + }; + + "miniBill/elm-unicode" = { + sha256 = "18w246bvra93amvqq3r2kqdv5ad8iavnhvcsbfdxw6747pi6pg2f"; + version = "1.0.2"; + }; + + "rtfeldman/elm-hex" = { + sha256 = "1y0aa16asvwdqmgbskh5iba6psp43lkcjjw9mgzj3gsrg33lp00d"; + version = "1.0.0"; + }; + + "stil4m/structured-writer" = { + sha256 = "02k32yaw275bivab90wy8qkbys3gg4fw53f798dzf1j9wharhg12"; + version = "1.0.3"; + }; +} diff --git a/pkgs/by-name/el/elm-land/package.nix b/pkgs/by-name/el/elm-land/package.nix new file mode 100644 index 000000000000..b086dac6f058 --- /dev/null +++ b/pkgs/by-name/el/elm-land/package.nix @@ -0,0 +1,71 @@ +{ + lib, + buildNpmPackage, + fetchFromGitHub, + elmPackages, + versionCheckHook, + writeShellScript, + nix-update, + elm2nix, + nixfmt-rfc-style, +}: + +buildNpmPackage rec { + pname = "elm-land"; + version = "0.20.1"; + + src = fetchFromGitHub { + owner = "elm-land"; + repo = "elm-land"; + rev = "v${version}"; + hash = "sha256-PFyiVTH2Cek377YZwaCmvDToQCaxWQvJrQkRhyNI2Wg="; + }; + + sourceRoot = "${src.name}/projects/cli"; + + npmDepsHash = "sha256-Bg16s0tqEaUT+BbFMKuEtx32rmbZLIILp8Ra/dQGmUg="; + + npmRebuildFlags = [ "--ignore-scripts" ]; + + 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 + ''; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + versionCheckProgramArg = [ "--version" ]; + doInstallCheck = true; + + passthru.updateScript = writeShellScript "update-elm-land" '' + set -eu -o pipefail + + # Update version, src and npm deps + ${lib.getExe nix-update} "$UPDATE_NIX_ATTR_PATH" + + # Update elm deps + cp "$(nix-build -A "$UPDATE_NIX_ATTR_PATH".src)/projects/cli/src/codegen/elm.json" elm.json + trap 'rm -rf elm.json registry.dat &> /dev/null' EXIT + ${lib.getExe elm2nix} convert > pkgs/by-name/el/elm-land/elm-srcs.nix + ${lib.getExe nixfmt-rfc-style} pkgs/by-name/el/elm-land/elm-srcs.nix + ${lib.getExe elm2nix} snapshot + cp registry.dat pkgs/by-name/el/elm-land/registry.dat + ''; + + meta = { + description = "A production-ready framework for building Elm applications"; + homepage = "https://github.com/elm-land/elm-land"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ + domenkozar + zupo + ]; + mainProgram = "elm-land"; + }; +} diff --git a/pkgs/by-name/el/elm-land/registry.dat b/pkgs/by-name/el/elm-land/registry.dat new file mode 100644 index 0000000000000000000000000000000000000000..503848580f45a8e96c050fee139952537dd205c0 GIT binary patch literal 349 zcmZR80A2{iz{{MPlgpk|lwV$)TExh}1Qlig39}^U7o{>Xu%d`%l;q|x!bBJ#>avRS z^B5VKVWJ?tYz2u$AQKTvL82@rnYpP5A+T=d(js&Nxyv$(N=g%RbW`$k85!W_@}}nG z>L%ys=9cDVmQ-@(WEPj`rdE^`C33LB-OZ7knV0F5nUli}Qe2vsnVg@JisUcOqLQ@K zoRr+eJa&+RjMNGw=dcx*WagOUa)D%uEAvVcE7+MhVZMS&3Ko|Xl_r;z7Nw@>mKSA~ JfI