From 63a81bb9d20d4579f9a1a5254b2dee6bd8017ff7 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Sat, 9 May 2026 20:16:33 +0300 Subject: [PATCH] nix: expose NixOS module in default flake outputs; cleanup Signed-off-by: NotAShelf Change-Id: I7457515ee7a96e11c9301e5b077afb446a6a6964 --- flake.nix | 5 +++++ nix/modules/nixos.nix | 29 ++++++++++++++++++++++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index d6b751f..fe24cda 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ forEachSystem = nixpkgs.lib.genAttrs systems; pkgsForEach = nixpkgs.legacyPackages; in { + nixosModules = { + eh = import ./nix/modules/nixos.nix self; + default = self.nixosModules.eh; + }; + packages = forEachSystem (system: { eh = pkgsForEach.${system}.callPackage ./nix/package.nix {}; default = self.packages.${system}.eh; diff --git a/nix/modules/nixos.nix b/nix/modules/nixos.nix index 074ecdb..a91c710 100644 --- a/nix/modules/nixos.nix +++ b/nix/modules/nixos.nix @@ -5,39 +5,58 @@ self: { ... }: let inherit (lib.modules) mkIf; - inherit (lib.options) mkEnableOption mkPackageOption; + inherit (lib.options) mkEnableOption mkPackageOption literalExpression; 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"] {}; + package = mkPackageOption self.packages.${pkgs.hostPlatform.system} ["eh"] { + pkgsText = literalExpression "self.packages.$${pkgs.hostPlatform.system}"; + }; 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;}; + fish.enable = mkEnableOption "Fish shell hook for EH" // {default = config.programs.fish.enable;}; }; }; config = mkIf cfg.enable { environment.systemPackages = [cfg.package]; - programs = { bash.interactiveShellInit = optionalString cfg.hooks.bash.enable '' - # Aliases added by EH + # EH multicall aliases alias nr='eh run' alias ns='eh shell' alias nb='eh build' + alias nd='eh develop' + alias ni='eh info' alias nu='eh update' + # End of EH aliases ''; zsh.interactiveShellInit = optionalString cfg.hooks.zsh.enable '' - # Aliases added by EH + # EH multicall aliases alias nr='eh run' alias ns='eh shell' alias nb='eh build' + alias nd='eh develop' + alias ni='eh info' alias nu='eh update' + # End of EH aliases + ''; + + fish.interactiveShellInit = optionalString cfg.hooks.fish.enable '' + # EH multicall aliases + alias nr='eh run' + alias ns='eh shell' + alias nb='eh build' + alias nd='eh develop' + alias ni='eh info' + alias nu='eh update' + # End of EH aliases ''; }; };