math-project/package.nix
2025-06-11 21:46:58 -04:00

49 lines
1.1 KiB
Nix

{
esbuild,
elmPackages,
stdenv,
http-server,
...
}: let
elmConfig = elmPackages.fetchElmDeps {
elmPackages = import ./src/elm2nix/elm-srcs.nix;
elmVersion = "0.19.1";
registryDat = ./src/elm2nix/registry.dat;
};
in
stdenv.mkDerivation {
name = "math-project";
src = ./src;
nativeBuildInputs = [
esbuild
elmPackages.elm
];
buildInputs = [
http-server
];
configurePhase = ''
${elmConfig}
'';
buildPhase = ''
elm make ./Main.elm --optimize --output=tmp.js
esbuild ./tmp.js --minify --target=es5 --outfile=main.js
'';
installPhase = ''
mkdir $out/bin -p
mkdir $out/src -p
echo "#!/usr/bin/env bash" > math-project
echo "cd $(echo $out)/src/" >> math-project
echo "${http-server}/bin/http-server" >> math-project
chmod a+x math-project
cp math-project $out/bin/math-project
cp index.html $out/src/index.html
cp main.js $out/src/main.js
'';
meta = {
mainProgram = "math-project";
description = "math project";
homepage = "https://math.mtgmonkey.net";
};
}