2026-01-19 15:17:26 -08:00
|
|
|
{
|
|
|
|
|
inputs = {
|
|
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
|
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
2026-01-19 15:18:53 -08:00
|
|
|
blog.url = "git+https://dev.danilafe.com/Nix-Configs/blog-static-flake.git";
|
|
|
|
|
blog.inputs.nixpkgs.follows = "nixpkgs";
|
2026-01-19 15:17:26 -08:00
|
|
|
};
|
|
|
|
|
|
2026-01-19 15:18:53 -08:00
|
|
|
outputs = { self, nixpkgs, flake-utils, blog, }:
|
2026-01-19 15:17:26 -08:00
|
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
|
|
|
let pkgs = import nixpkgs { inherit system; };
|
2026-01-19 15:18:53 -08:00
|
|
|
builtBlog = blog.defaultPackage.${system};
|
2026-01-19 15:17:26 -08:00
|
|
|
in {
|
2026-01-19 15:18:53 -08:00
|
|
|
devShell = pkgs.mkShell {
|
2026-01-19 15:17:26 -08:00
|
|
|
packages = [
|
|
|
|
|
pkgs.nodejs
|
|
|
|
|
pkgs.yarn
|
2026-01-19 15:18:53 -08:00
|
|
|
pkgs.chromium
|
|
|
|
|
builtBlog
|
2026-01-19 15:17:26 -08:00
|
|
|
];
|
|
|
|
|
|
|
|
|
|
nativeBuildInputs = [ pkgs.yarnConfigHook ];
|
|
|
|
|
|
|
|
|
|
# Must be named this for pkgs.yarnConfigHook
|
|
|
|
|
yarnOfflineCache = pkgs.fetchYarnDeps {
|
|
|
|
|
yarnLock = ./yarn.lock;
|
2026-01-19 15:18:53 -08:00
|
|
|
hash = "sha256-jUa1XkxJ2dS6nTyH/gRrTkEedSUgcl7k6wd3OiCkj6A=";
|
2026-01-19 15:17:26 -08:00
|
|
|
};
|
|
|
|
|
|
2026-01-19 15:18:53 -08:00
|
|
|
# Configure to use system Chromium
|
|
|
|
|
PLAYWRIGHT_CHROMIUM_PATH = "${pkgs.chromium}/bin/chromium";
|
|
|
|
|
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
|
|
|
|
|
|
|
|
|
|
# Expose the built blog package, which we'll be testing
|
|
|
|
|
builtBlog = builtBlog;
|
2026-01-19 15:17:26 -08:00
|
|
|
|
|
|
|
|
# Optional but often needed in Nix sandboxes:
|
|
|
|
|
# XDG_CACHE_HOME = "$TMPDIR/xdg-cache";
|
|
|
|
|
# XDG_CONFIG_HOME = "$TMPDIR/xdg-config";
|
|
|
|
|
# XDG_DATA_HOME = "$TMPDIR/xdg-data";
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|