From f0ec0450429beec1a375896dbade98c89e7c9416 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Moritz=20B=C3=B6hme?= <mail@moritzboeh.me>
Date: Sat, 22 Feb 2025 17:21:15 +0100
Subject: [PATCH] feat: add aider program module

---
 hosts/nixos-desktop/default.nix |  1 +
 modules/programs/aider.nix      | 28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)
 create mode 100644 modules/programs/aider.nix

diff --git a/hosts/nixos-desktop/default.nix b/hosts/nixos-desktop/default.nix
index d850215..f7323de 100644
--- a/hosts/nixos-desktop/default.nix
+++ b/hosts/nixos-desktop/default.nix
@@ -25,6 +25,7 @@
       webis.enable = true;
     };
     programs.prismlauncher.enable = true;
+    programs.aider.enable = true;
     services.wallpaper.enable = true;
   };
 
diff --git a/modules/programs/aider.nix b/modules/programs/aider.nix
new file mode 100644
index 0000000..06f4464
--- /dev/null
+++ b/modules/programs/aider.nix
@@ -0,0 +1,28 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+
+with lib;
+let
+  cfg = config.my.programs.aider;
+
+  wrapped = pkgs.writeShellApplication {
+    name = "aider";
+    text = ''
+      aider --openai-api-key "$(cat /run/agenix/openai)" --no-attribute-author --no-attribute-committer "$@"
+    '';
+    runtimeInputs = [ cfg.package ];
+  };
+in
+{
+  options.my.programs.aider = {
+    enable = mkEnableOption "ssh";
+    package = mkPackageOption pkgs "aider-chat" { };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ wrapped ];
+  };
+}