# Build Dev packages independently, outside NixOS context. # # This file builds packages for Beryllium and returns them as an attribute set. # The NixOS config (Beryllium.nix) will accept these as inputs rather than # building them during OS evaluation. # # Usage: # nix-build Omni/Dev/Packages.nix # builds all packages # nix-build Omni/Dev/Packages.nix -A ava # builds one package {bild ? import ../Bild.nix {}}: let nixpkgs = import ../Bild/Nixpkgs.nix; pkgs = nixpkgs.nixos-24_11; # Python environment for Ava's python_exec tool avaPython = bild.python.pythonWith (p: [ p.requests # HTTP requests p.httpx # Async HTTP p.beautifulsoup4 # HTML/XML parsing p.lxml # Fast XML/HTML parser p.pandas # Data analysis p.numpy # Numerical computing p.pillow # Image processing p.pyyaml # YAML parsing p.python-dateutil # Date utilities ]); avaPkg = bild.run ../Ava.hs; # Wrapped ava with tools in PATH ava = bild.stdenv.mkDerivation { name = "ava-wrapped"; buildInputs = [bild.makeWrapper]; phases = ["installPhase"]; installPhase = '' mkdir -p $out/bin makeWrapper ${avaPkg}/bin/ava $out/bin/ava \ --prefix PATH : ${bild.lib.makeBinPath [ avaPython bild.pkgs.jq bild.pkgs.ripgrep bild.pkgs.coreutils bild.pkgs.git bild.pkgs.sqlite bild.pkgs.ffmpeg bild.pkgs.bash pkgs.curl pkgs.pandoc pkgs.imagemagick pkgs.csvkit pkgs.openai-whisper-cpp pkgs.direnv pkgs.nix ]} ''; }; in { inherit ava; deployer = bild.run ../Deploy/Deployer.hs; deploy-manifest = bild.run ../Deploy/Manifest.hs; }