nix packaging
Still requires manual addition of modules and tweaking pagefind.
This commit is contained in:
parent
ffdbd0e614
commit
a787497feb
5 changed files with 147 additions and 9 deletions
82
default.nix
Normal file
82
default.nix
Normal file
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
nix-gitignore,
|
||||
|
||||
yarn-berry,
|
||||
nodejs,
|
||||
cacert,
|
||||
}: stdenv.mkDerivation (final: let
|
||||
nodeModules = stdenv.mkDerivation {
|
||||
pname = "${final.pname}-node_modules";
|
||||
version = final.version;
|
||||
|
||||
src = final.src;
|
||||
|
||||
nativeBuildInputs = [ nodejs yarn-berry cacert ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir garbage-tooling
|
||||
|
||||
cat <<EOF > .yarnrc.yml
|
||||
enableTelemetry: false
|
||||
enableInlineBuilds: true
|
||||
enableProgressBars: false
|
||||
enableGlobalCache: false
|
||||
nodeLinker: node-modules
|
||||
EOF
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
# build will fail once due to missing nodejs executable
|
||||
# linking before running this won't work, it will just delete it
|
||||
HOME=$(pwd)/garbage-tooling yarn install || true
|
||||
|
||||
mkdir -p node_modules/node/bin
|
||||
ln -s ${nodejs}/bin/node node_modules/node/bin/node
|
||||
|
||||
HOME=$(pwd)/garbage-tooling yarn install
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
# none of the cache path configs in yarnrc actually do anything
|
||||
# so we just copy node_modules manually
|
||||
|
||||
rm node_modules/node/bin/node # remove dep on nix package for output hash
|
||||
mv node_modules $out
|
||||
'';
|
||||
|
||||
fixupPhase = "true";
|
||||
|
||||
outputHashMode = "recursive";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHash = "rKoDjvG5t+aQRrzAz0eTifPtL3zmWAu/emxXWd1ocxM=";
|
||||
};
|
||||
in {
|
||||
pname = "quickshell-web";
|
||||
version = "0.1.0";
|
||||
|
||||
src = nix-gitignore.gitignoreSource [] ./.;
|
||||
|
||||
nativeBuildInputs = [ yarn-berry ];
|
||||
|
||||
configurePhase = ''
|
||||
mkdir garbage-tooling
|
||||
|
||||
cat <<EOF > .yarnrc.yml
|
||||
enableInlineBuilds: true
|
||||
enableProgressBars: false
|
||||
enableGlobalCache: false
|
||||
enableNetwork: false
|
||||
nodeLinker: node-modules
|
||||
EOF
|
||||
|
||||
cp -r ${nodeModules} node_modules
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
HOME=$(pwd)/garbage-tooling yarn build
|
||||
'';
|
||||
|
||||
installPhase = "mv dist $out";
|
||||
})
|
Loading…
Add table
Add a link
Reference in a new issue