nixfmt pass
This commit is contained in:
parent
c6d629ad45
commit
857e038fa9
159
default.nix
159
default.nix
@ -1,18 +1,29 @@
|
||||
{ pkgs, google-chrome, symlinkJoin, stdenv, elmPackages, libjpeg, optipng, pngquant, libwebp, ... }:
|
||||
{ pkgs, google-chrome, symlinkJoin, stdenv, elmPackages, libjpeg, optipng
|
||||
, pngquant, libwebp, ... }:
|
||||
|
||||
let
|
||||
pnpm2nix = pkgs.callPackage (builtins.fetchGit {
|
||||
url = "https://github.com/notgne2/pnpm2nix.git";
|
||||
rev = "909accd35d23664254b43109ee58cd0c3d83a6d9";
|
||||
}) {};
|
||||
}) { };
|
||||
|
||||
nodeCleanSourceFilter = name: type: pkgs.lib.cleanSourceFilter name type &&
|
||||
((baseNameOf name) != "node_modules");
|
||||
nodeCleanSource = src: pkgs.lib.cleanSourceWith { filter = nodeCleanSourceFilter; inherit src; };
|
||||
nodeCleanSourceFilter = name: type:
|
||||
pkgs.lib.cleanSourceFilter name type
|
||||
&& ((baseNameOf name) != "node_modules");
|
||||
nodeCleanSource = src:
|
||||
pkgs.lib.cleanSourceWith {
|
||||
filter = nodeCleanSourceFilter;
|
||||
inherit src;
|
||||
};
|
||||
|
||||
elmCleanSourceFilter = name: type: nodeCleanSourceFilter name type &&
|
||||
((baseNameOf name) != "elm-stuff" && (baseNameOf name) != "dist");
|
||||
elmCleanSource = src: pkgs.lib.cleanSourceWith { filter = elmCleanSourceFilter; inherit src; };
|
||||
elmCleanSourceFilter = name: type:
|
||||
nodeCleanSourceFilter name type
|
||||
&& ((baseNameOf name) != "elm-stuff" && (baseNameOf name) != "dist");
|
||||
elmCleanSource = src:
|
||||
pkgs.lib.cleanSourceWith {
|
||||
filter = elmCleanSourceFilter;
|
||||
inherit src;
|
||||
};
|
||||
|
||||
builderPkg = pnpm2nix.mkPnpmPackage {
|
||||
name = "builder-node-packages";
|
||||
@ -20,78 +31,72 @@ let
|
||||
pnpmLock = ./pnpm-lock.yaml;
|
||||
src = nodeCleanSource ./.;
|
||||
overrides = pnpm2nix.defaultPnpmOverrides // {
|
||||
puppeteer = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
preBuild = ''
|
||||
# Define the local chromium directory
|
||||
local_chromium=$HOME/node_modules/puppeteer/.local-chromium/linux-686378
|
||||
# Make sure that directory exists
|
||||
mkdir -p $local_chromium
|
||||
# Link pkgs' standard google chrome into place
|
||||
cp -r --no-preserve=mode,ownership ${google-chrome}/share/google/chrome $local_chromium/chrome-linux
|
||||
cp ${google-chrome}/bin/google-chrome-stable $local_chromium/chrome-linux/chrome
|
||||
chmod +x $local_chromium/chrome-linux/chrome
|
||||
'';
|
||||
}));
|
||||
imagemin-pngquant = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.libpng ];
|
||||
}));
|
||||
pngquant-bin = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/pngquant-bin/vendor
|
||||
ln -s ${pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant
|
||||
'';
|
||||
}));
|
||||
puppeteer = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
preBuild = ''
|
||||
# Define the local chromium directory
|
||||
local_chromium=$HOME/node_modules/puppeteer/.local-chromium/linux-686378
|
||||
# Make sure that directory exists
|
||||
mkdir -p $local_chromium
|
||||
# Link pkgs' standard google chrome into place
|
||||
cp -r --no-preserve=mode,ownership ${google-chrome}/share/google/chrome $local_chromium/chrome-linux
|
||||
cp ${google-chrome}/bin/google-chrome-stable $local_chromium/chrome-linux/chrome
|
||||
chmod +x $local_chromium/chrome-linux/chrome
|
||||
'';
|
||||
}));
|
||||
imagemin-pngquant = (drv:
|
||||
drv.overrideAttrs
|
||||
(oldAttrs: { buildInputs = oldAttrs.buildInputs ++ [ pkgs.libpng ]; }));
|
||||
pngquant-bin = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/pngquant-bin/vendor
|
||||
ln -s ${pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant
|
||||
'';
|
||||
}));
|
||||
|
||||
gifsicle = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.autoconf pkgs.automake ];
|
||||
}));
|
||||
gifsicle = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
buildInputs = oldAttrs.buildInputs ++ [ pkgs.autoconf pkgs.automake ];
|
||||
}));
|
||||
|
||||
optipng = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
buildInputs = [ optipng ];
|
||||
}));
|
||||
optipng-bin = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/optipng-bin/vendor
|
||||
ln -s ${optipng}/bin/optipng $HOME/node_modules/optipng-bin/vendor/optipng
|
||||
'';
|
||||
}));
|
||||
optipng =
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ optipng ]; }));
|
||||
optipng-bin = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/optipng-bin/vendor
|
||||
ln -s ${optipng}/bin/optipng $HOME/node_modules/optipng-bin/vendor/optipng
|
||||
'';
|
||||
}));
|
||||
|
||||
jpegtran = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
buildInputs = [ libjpeg ];
|
||||
}));
|
||||
jpegtran-bin = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/jpegtran-bin/vendor
|
||||
ln -s ${libjpeg}/bin/jpegtran $HOME/node_modules/jpegtran-bin/vendor/jpegtran
|
||||
'';
|
||||
}));
|
||||
jpegtran =
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ libjpeg ]; }));
|
||||
jpegtran-bin = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/jpegtran-bin/vendor
|
||||
ln -s ${libjpeg}/bin/jpegtran $HOME/node_modules/jpegtran-bin/vendor/jpegtran
|
||||
'';
|
||||
}));
|
||||
|
||||
|
||||
cwebp-bin = (drv: drv.overrideAttrs(oldAttrs: {
|
||||
buildPhase = ''
|
||||
mkdir -p $HOME/node_modules/cwebp-bin/vendor/
|
||||
ln -s ${libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp
|
||||
'';
|
||||
}));
|
||||
cwebp-bin = (drv:
|
||||
drv.overrideAttrs (oldAttrs: {
|
||||
buildPhase = ''
|
||||
mkdir -p $HOME/node_modules/cwebp-bin/vendor/
|
||||
ln -s ${libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp
|
||||
'';
|
||||
}));
|
||||
};
|
||||
};
|
||||
|
||||
mkWandardFront = {
|
||||
name,
|
||||
prettyName ? name,
|
||||
description ? "",
|
||||
themeColor ? "#000000",
|
||||
backgroundColor ? "#000000",
|
||||
src,
|
||||
nodePackages ? [],
|
||||
routes ? [ "/" ],
|
||||
}:
|
||||
mkWandardFront = { name, prettyName ? name, description ? ""
|
||||
, themeColor ? "#000000", backgroundColor ? "#000000", src
|
||||
, nodePackages ? [ ], routes ? [ "/" ], }:
|
||||
let
|
||||
nodeSource = symlinkJoin {
|
||||
name = "${name}-node-sources";
|
||||
paths = [
|
||||
builderPkg.lib
|
||||
] ++ nodePackages;
|
||||
paths = [ builderPkg.lib ] ++ nodePackages;
|
||||
};
|
||||
|
||||
baseWebpackConfig = builtins.readFile ./webpack.config.js;
|
||||
@ -158,17 +163,12 @@ let
|
||||
</body>
|
||||
</html>
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
in stdenv.mkDerivation {
|
||||
inherit name;
|
||||
|
||||
src = elmCleanSource src;
|
||||
|
||||
buildInputs = with elmPackages; [
|
||||
elm
|
||||
elm-format
|
||||
nodeSource
|
||||
];
|
||||
buildInputs = with elmPackages; [ elm elm-format nodeSource ];
|
||||
|
||||
patchPhase = ''
|
||||
ln -sf ${nodeSource}/node_modules .
|
||||
@ -200,7 +200,4 @@ let
|
||||
mv dist/* $out
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit mkWandardFront;
|
||||
}
|
||||
in { inherit mkWandardFront; }
|
||||
|
Loading…
Reference in New Issue
Block a user