Files
aia-website/flake.nix

64 lines
1.9 KiB
Nix

{
description = "Arizona Institute for Autism Astro development environment";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs =
{ nixpkgs, ... }:
let
supportedSystems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
];
forAllSystems =
function: nixpkgs.lib.genAttrs supportedSystems (system: function nixpkgs.legacyPackages.${system});
in
{
devShells = forAllSystems (
pkgs:
let
developmentPackages = with pkgs; [
nodejs_24
git
curl
jq
ripgrep
fd
python3
];
in
{
default = pkgs.mkShell { packages = developmentPackages; };
}
// pkgs.lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
# Keep driver and browser revisions paired through the existing lockfile.
# Opt-in so ordinary content editing does not require browser downloads.
browser = pkgs.mkShell {
packages = developmentPackages ++ [ pkgs.playwright-driver ];
PLAYWRIGHT_MODULE = "${pkgs.playwright-driver}/index.mjs";
PLAYWRIGHT_BROWSERS_PATH = pkgs.playwright-driver.selectBrowsers {
withFirefox = true;
withWebkit = false;
withFfmpeg = false;
};
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD = "1";
# Nix supplies browser libraries via patched runtime paths, not apt.
PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS = "true";
FONTCONFIG_FILE = pkgs.makeFontsConf {
fontDirectories = with pkgs; [
dejavu_fonts
liberation_ttf
noto-fonts
];
};
ASTRO_TELEMETRY_DISABLED = "1";
};
}
);
formatter = forAllSystems (pkgs: pkgs.nixfmt);
};
}