jolheiser.com/flake.nix

51 lines
1.4 KiB
Nix

{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
flake-utils,
nixpkgs,
}:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
packages.default = pkgs.stdenv.mkDerivation rec {
pname = "jolheiser.com";
version = "site";
src = ./.;
offlineCache = pkgs.fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
sha256 = "sha256-IF30H3ZXlKoyap7xJOD6tnZjCZ/U/VgWrCjj4fh6zyM=";
};
nativeBuildInputs = with pkgs; [yarn fixup_yarn_lock nodejs-slim];
postPatch = ''
export HOME=$NIX_BUILD_TOP/fake_home
yarn config --offline set yarn-offline-mirror $offlineCache
fixup_yarn_lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
'';
buildPhase = ''
runHook preBuild
yarn --offline build
mv dist $out
runHook postBuild
'';
};
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [
yarn
nodePackages.vscode-langservers-extracted
];
};
}
);
}