64 lines
1.9 KiB
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);
|
|
};
|
|
}
|