quickshell-web/default.nix

84 lines
1.6 KiB
Nix
Raw Permalink Normal View History

{
lib,
stdenv,
nix-gitignore,
yarn-berry,
2025-05-13 20:56:31 -07:00
nodejs,
cacert,
2025-07-22 01:08:30 -07:00
versions ? null,
}: stdenv.mkDerivation (final: let
nodeModules = stdenv.mkDerivation {
pname = "${final.pname}-node_modules";
version = final.version;
src = final.src;
2025-05-13 20:56:31 -07:00
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 = ''
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
mv node_modules $out
'';
fixupPhase = "true";
outputHashMode = "recursive";
outputHashAlgo = "sha256";
2025-05-13 20:56:31 -07:00
outputHash = "V1sjOLi6UOb3HQLiGTcGJInDU7H28fjzdmrxYXXI0ug=";
};
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
2024-11-09 01:09:07 -08:00
chmod +rw -R node_modules
'';
2024-11-09 03:09:09 -08:00
PRODUCTION = true;
2025-07-22 01:08:30 -07:00
VERSION_FILE_PATH = versions;
2024-11-09 03:09:09 -08:00
buildPhase = ''
HOME=$(pwd)/garbage-tooling yarn build
'';
2025-06-07 05:23:45 -07:00
installPhase = ''
mkdir -p $out
mv redirects.caddyfile $out
mv dist $out/site
'';
})