diff options
Diffstat (limited to 'Omni/Dev/Packages.nix')
| -rw-r--r-- | Omni/Dev/Packages.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Omni/Dev/Packages.nix b/Omni/Dev/Packages.nix new file mode 100644 index 0000000..bb45d61 --- /dev/null +++ b/Omni/Dev/Packages.nix @@ -0,0 +1,60 @@ +# 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; +} |
