From af25dd46c717f050bd0ec748a4e2e961d48f2fa2 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Mon, 16 Mar 2026 14:54:19 +0300 Subject: [PATCH] nix: add NixOS module Signed-off-by: NotAShelf Change-Id: I0d8e0ed21f7b565123312cbdffa8a5e36a6a6964 --- nix/modules/nixos.nix | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 nix/modules/nixos.nix diff --git a/nix/modules/nixos.nix b/nix/modules/nixos.nix new file mode 100644 index 0000000..074ecdb --- /dev/null +++ b/nix/modules/nixos.nix @@ -0,0 +1,44 @@ +self: { + config, + pkgs, + lib, + ... +}: let + inherit (lib.modules) mkIf; + inherit (lib.options) mkEnableOption mkPackageOption; + inherit (lib.strings) optionalString; + + cfg = config.programs.eh; +in { + options.programs.eh = { + enable = mkEnableOption "eh - Ergonomic Nix CLI helper"; + package = mkPackageOption self.packages.${pkgs.hostPlatform.system} ["eh"] {}; + + hooks = { + bash.enable = mkEnableOption "Bash shell hook for EH" // {default = config.programs.bash.enable;}; + zsh.enable = mkEnableOption "ZSH shell hook for EH" // {default = config.programs.zsh.enable;}; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [cfg.package]; + + programs = { + bash.interactiveShellInit = optionalString cfg.hooks.bash.enable '' + # Aliases added by EH + alias nr='eh run' + alias ns='eh shell' + alias nb='eh build' + alias nu='eh update' + ''; + + zsh.interactiveShellInit = optionalString cfg.hooks.zsh.enable '' + # Aliases added by EH + alias nr='eh run' + alias ns='eh shell' + alias nb='eh build' + alias nu='eh update' + ''; + }; + }; +}