mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
elm-land: Rewrite and migrate from elmPackages to pkgs/by-name
Signed-off-by: Ilan Joselevich <personal@ilanjoselevich.com>
This commit is contained in:
parent
e34669ce4c
commit
9837de0da7
8 changed files with 2164 additions and 2462 deletions
|
@ -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
|
||||
|
||||
|
|
67
pkgs/by-name/el/elm-land/elm-srcs.nix
Normal file
67
pkgs/by-name/el/elm-land/elm-srcs.nix
Normal file
|
@ -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";
|
||||
};
|
||||
}
|
71
pkgs/by-name/el/elm-land/package.nix
Normal file
71
pkgs/by-name/el/elm-land/package.nix
Normal file
|
@ -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";
|
||||
};
|
||||
}
|
BIN
pkgs/by-name/el/elm-land/registry.dat
Normal file
BIN
pkgs/by-name/el/elm-land/registry.dat
Normal file
Binary file not shown.
|
@ -7,19 +7,19 @@ let
|
|||
inherit (pkgs.stdenv.hostPlatform) system;
|
||||
};
|
||||
ESBUILD_BINARY_PATH = lib.getExe (
|
||||
pkgs.esbuild.override {
|
||||
buildGoModule = args: pkgs.buildGoModule (args // rec {
|
||||
version = "0.20.2";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "evanw";
|
||||
repo = "esbuild";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
|
||||
};
|
||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||
});
|
||||
}
|
||||
);
|
||||
pkgs.esbuild.override {
|
||||
buildGoModule = args: pkgs.buildGoModule (args // rec {
|
||||
version = "0.20.2";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "evanw";
|
||||
repo = "esbuild";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
|
||||
};
|
||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||
});
|
||||
}
|
||||
);
|
||||
in
|
||||
with self; with elmLib; {
|
||||
inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
|
||||
|
@ -124,20 +124,7 @@ with self; with elmLib; {
|
|||
|
||||
elm-pages = import ./elm-pages { inherit nodePkgs pkgs lib makeWrapper; };
|
||||
|
||||
elm-land =
|
||||
let
|
||||
patched = patchNpmElm nodePkgs.elm-land;
|
||||
in
|
||||
patched.override (old: {
|
||||
inherit ESBUILD_BINARY_PATH;
|
||||
meta = with lib; nodePkgs."elm-land".meta // {
|
||||
description = "Production-ready framework for building Elm applications";
|
||||
homepage = "https://elm.land/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = [ maintainers.zupo ];
|
||||
};
|
||||
}
|
||||
);
|
||||
elm-land = pkgs.elm-land; # Alias
|
||||
|
||||
elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
|
||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
|
||||
|
|
|
@ -19,7 +19,7 @@ let
|
|||
writeShellScript
|
||||
;
|
||||
inherit pkgs nodejs;
|
||||
libtool = if pkgs.stdenv.hostPlatform.isDarwin then pkgs.cctools or pkgs.darwin.cctools else null;
|
||||
libtool = if pkgs.stdenv.isDarwin then pkgs.cctools or pkgs.darwin.cctools else null;
|
||||
};
|
||||
in
|
||||
import ./node-packages.nix {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
"elm-coverage",
|
||||
"elm-doc-preview",
|
||||
"@elm-tooling/elm-language-server",
|
||||
"elm-land",
|
||||
"elm-live",
|
||||
"elm-spa",
|
||||
"elm-test",
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue