flakify
This commit is contained in:
parent
617453769b
commit
4eae97a2ce
51
default.nix
51
default.nix
@ -1,26 +1,6 @@
|
||||
{ pkgs
|
||||
, google-chrome
|
||||
, symlinkJoin
|
||||
, stdenv
|
||||
, elmPackages
|
||||
, libjpeg
|
||||
, optipng
|
||||
, pngquant
|
||||
, libwebp
|
||||
, ...
|
||||
}:
|
||||
pkgs: inputs:
|
||||
let
|
||||
workingElmPackages = if elmPackages.elmVersion == "0.19.1" then
|
||||
elmPackages
|
||||
else
|
||||
(import <unstable> {}).elmPackages;
|
||||
|
||||
pnpm2nix = pkgs.callPackage (
|
||||
builtins.fetchGit {
|
||||
url = "https://github.com/notgne2/pnpm2nix.git";
|
||||
rev = "909accd35d23664254b43109ee58cd0c3d83a6d9";
|
||||
}
|
||||
) {};
|
||||
pnpm2nix = pkgs.callPackage inputs.pnpm2nix { };
|
||||
|
||||
nodeCleanSourceFilter = name: type:
|
||||
pkgs.lib.cleanSourceFilter name type
|
||||
@ -56,8 +36,8 @@ let
|
||||
# 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
|
||||
cp -r --no-preserve=mode,ownership ${pkgs.google-chrome}/share/google/chrome $local_chromium/chrome-linux
|
||||
cp ${pkgs.google-chrome}/bin/google-chrome-stable $local_chromium/chrome-linux/chrome
|
||||
chmod +x $local_chromium/chrome-linux/chrome
|
||||
'';
|
||||
}
|
||||
@ -74,7 +54,7 @@ let
|
||||
oldAttrs: {
|
||||
preBuild = ''
|
||||
mkdir -p $HOME/node_modules/pngquant-bin/vendor
|
||||
ln -s ${pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant
|
||||
ln -s ${pkgs.pngquant}/bin/pngquant $HOME/node_modules/pngquant-bin/vendor/pngquant
|
||||
'';
|
||||
}
|
||||
)
|
||||
@ -90,28 +70,28 @@ let
|
||||
);
|
||||
|
||||
optipng =
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ optipng ]; }));
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ pkgs.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
|
||||
ln -s ${pkgs.optipng}/bin/optipng $HOME/node_modules/optipng-bin/vendor/optipng
|
||||
'';
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
jpegtran =
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ libjpeg ]; }));
|
||||
(drv: drv.overrideAttrs (oldAttrs: { buildInputs = [ pkgs.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
|
||||
ln -s ${pkgs.libjpeg}/bin/jpegtran $HOME/node_modules/jpegtran-bin/vendor/jpegtran
|
||||
'';
|
||||
}
|
||||
)
|
||||
@ -123,7 +103,7 @@ let
|
||||
oldAttrs: {
|
||||
buildPhase = ''
|
||||
mkdir -p $HOME/node_modules/cwebp-bin/vendor/
|
||||
ln -s ${libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp
|
||||
ln -s ${pkgs.libwebp}/bin/cwebp $HOME/node_modules/cwebp-bin/vendor/cwebp
|
||||
'';
|
||||
}
|
||||
)
|
||||
@ -138,14 +118,14 @@ let
|
||||
, themeColor ? "#000000"
|
||||
, backgroundColor ? "#000000"
|
||||
, src
|
||||
, nodePackages ? []
|
||||
, nodePackages ? [ ]
|
||||
, routes ? [ "/" ]
|
||||
, extraHead ? ""
|
||||
, extraBody ? ""
|
||||
, extraPostBody ? ""
|
||||
}:
|
||||
let
|
||||
nodeSource = symlinkJoin {
|
||||
nodeSource = pkgs.symlinkJoin {
|
||||
name = "${name}-node-sources";
|
||||
paths = [ builderPkg.lib ] ++ nodePackages;
|
||||
};
|
||||
@ -217,12 +197,13 @@ let
|
||||
${extraPostBody}
|
||||
</html>
|
||||
'';
|
||||
in stdenv.mkDerivation {
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
inherit name;
|
||||
|
||||
src = elmCleanSource src;
|
||||
|
||||
buildInputs = with workingElmPackages; [ elm nodeSource ];
|
||||
buildInputs = with pkgs.elmPackages; [ elm nodeSource ];
|
||||
|
||||
patchPhase = ''
|
||||
ln -sf ${nodeSource}/node_modules .
|
||||
@ -248,7 +229,7 @@ let
|
||||
export NODE_PATH=$PWD/node_modules
|
||||
'';
|
||||
|
||||
buildPhase = workingElmPackages.fetchElmDeps {
|
||||
buildPhase = pkgs.elmPackages.fetchElmDeps {
|
||||
elmPackages = import (src + "/elm-srcs.nix");
|
||||
registryDat = src + "/registry.dat";
|
||||
elmVersion = "0.19.1";
|
||||
|
77
flake.lock
generated
Normal file
77
flake.lock
generated
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1606424373,
|
||||
"narHash": "sha256-oq8d4//CJOrVj+EcOaSXvMebvuTkmBJuT5tzlfewUnQ=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "99f1c2157fba4bfe6211a321fd0ee43199025dbf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1612996220,
|
||||
"narHash": "sha256-l2kzWXxL3vXr8VxUzRtORPJS0nFQ3E5kBPF/AYAK0wI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "758b29b5a28b818e311ad540637a5c1e40867489",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"pnpm2nix": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1613295715,
|
||||
"narHash": "sha256-bj4daCwh8AerFz65yUYRBkJTdP+PdvGKNozdbAdHiUI=",
|
||||
"ref": "master",
|
||||
"rev": "55487e9b92017d9cadf7e6ed4c090e15e7eaf8a9",
|
||||
"revCount": 88,
|
||||
"type": "git",
|
||||
"url": "ssh://git@github.com/notgne2/pnpm2nix.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "ssh://git@github.com/notgne2/pnpm2nix.git"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"pnpm2nix": "pnpm2nix",
|
||||
"utils": "utils"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"locked": {
|
||||
"lastModified": 1610051610,
|
||||
"narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
24
flake.nix
Normal file
24
flake.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
pnpm2nix.url = "git+ssh://git@github.com/notgne2/pnpm2nix.git";
|
||||
pnpm2nix.flake = false;
|
||||
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
|
||||
flake-compat = {
|
||||
url = "github:edolstra/flake-compat";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, utils, ... } @ inputs:
|
||||
utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
{
|
||||
lib = import ./default.nix pkgs inputs;
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user