diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-17 14:28:37 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-17 14:28:37 -0500 |
| commit | f44a7f7fb29077b97af56219b906a1867aa7dc6d (patch) | |
| tree | d4e477f6d95c0bad9e28ebb77e88f996a39e597c /Omni | |
| parent | 1ff28991e7210100772b5c05cc421a46faf9a8df (diff) | |
Diffstat (limited to 'Omni')
| -rw-r--r-- | Omni/Dev/Beryllium/Ava.nix | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/Omni/Dev/Beryllium/Ava.nix b/Omni/Dev/Beryllium/Ava.nix index e6254ea..f0765cd 100644 --- a/Omni/Dev/Beryllium/Ava.nix +++ b/Omni/Dev/Beryllium/Ava.nix @@ -1,6 +1,36 @@ {...}: let bild = import ../../Bild.nix {}; avaPkg = bild.run ../../Ava.hs; + + # Python environment for Ava's python_exec tool + avaPython = bild.python.pythonWith (p: [ + p.requests # HTTP requests + p.beautifulsoup4 # HTML/XML parsing + p.lxml # Fast XML/HTML parser + p.pandas # Data analysis + p.numpy # Numerical computing + p.pyyaml # YAML parsing + p.python-dateutil # Date utilities + ]); + + # Wrap ava binary with tools in PATH + avaWithTools = 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 + ]} + ''; + }; in { systemd.services.ava = { description = "Ava Telegram assistant"; @@ -22,7 +52,7 @@ in { EnvironmentFile = "/run/secrets/ava.env"; - ExecStart = "${avaPkg}/bin/ava"; + ExecStart = "${avaWithTools}/bin/ava"; StandardOutput = "journal"; StandardError = "journal"; |
