mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 19:55:41 +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
|
insert_final_newline = unset
|
||||||
trim_trailing_whitespace = unset
|
trim_trailing_whitespace = unset
|
||||||
|
|
||||||
[pkgs/development/compilers/elm/registry.dat]
|
[registry.dat]
|
||||||
end_of_line = unset
|
end_of_line = unset
|
||||||
insert_final_newline = 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;
|
inherit (pkgs.stdenv.hostPlatform) system;
|
||||||
};
|
};
|
||||||
ESBUILD_BINARY_PATH = lib.getExe (
|
ESBUILD_BINARY_PATH = lib.getExe (
|
||||||
pkgs.esbuild.override {
|
pkgs.esbuild.override {
|
||||||
buildGoModule = args: pkgs.buildGoModule (args // rec {
|
buildGoModule = args: pkgs.buildGoModule (args // rec {
|
||||||
version = "0.20.2";
|
version = "0.20.2";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
owner = "evanw";
|
owner = "evanw";
|
||||||
repo = "esbuild";
|
repo = "esbuild";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
|
hash = "sha256-h/Vqwax4B4nehRP9TaYbdixAZdb1hx373dNxNHvDrtY=";
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
with self; with elmLib; {
|
with self; with elmLib; {
|
||||||
inherit (nodePkgs) elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
|
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-pages = import ./elm-pages { inherit nodePkgs pkgs lib makeWrapper; };
|
||||||
|
|
||||||
elm-land =
|
elm-land = pkgs.elm-land; # Alias
|
||||||
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-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
|
elm-doc-preview = nodePkgs."elm-doc-preview".overrideAttrs (old: {
|
||||||
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
|
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ old.nodejs.pkgs.node-gyp-build ];
|
||||||
|
|
|
@ -19,7 +19,7 @@ let
|
||||||
writeShellScript
|
writeShellScript
|
||||||
;
|
;
|
||||||
inherit pkgs nodejs;
|
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
|
in
|
||||||
import ./node-packages.nix {
|
import ./node-packages.nix {
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
"elm-coverage",
|
"elm-coverage",
|
||||||
"elm-doc-preview",
|
"elm-doc-preview",
|
||||||
"@elm-tooling/elm-language-server",
|
"@elm-tooling/elm-language-server",
|
||||||
"elm-land",
|
|
||||||
"elm-live",
|
"elm-live",
|
||||||
"elm-spa",
|
"elm-spa",
|
||||||
"elm-test",
|
"elm-test",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue