From 1a39cf221e3f647df0767c88d89a54e3813e7019 Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sat, 29 Aug 2026 03:45:10 +0530 Subject: refactor: adding explicit options to enable scripts - some scripts that are not critical to the functioning of other options, can be enabled/disabled --- modules/system/nix-update/default.nix | 58 ++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 14 deletions(-) (limited to 'modules/system/nix-update') diff --git a/modules/system/nix-update/default.nix b/modules/system/nix-update/default.nix index 13c15f6..4d00c77 100644 --- a/modules/system/nix-update/default.nix +++ b/modules/system/nix-update/default.nix @@ -6,19 +6,49 @@ ... }: let - inherit ((import ../../lib/script.nix { inherit lib pkgs; })) mkScriptModule; + nixUpdateScript = pkgs.writeShellApplication { + name = "nix-update"; + runtimeInputs = [ + pkgs.git + pkgs.nix + config.programs.home-manager.package + pkgs.bash + ]; + text = builtins.readFile ./nix-update.sh; + }; + + nixUpdateCompletion = + pkgs.runCommand "nix-update-completion" + { + nativeBuildInputs = [ pkgs.installShellFiles ]; + } + '' + mkdir -p $out/share/zsh/site-functions + installShellCompletion --zsh --name _nix-update ${pkgs.writeText "nix-update.zsh" (builtins.readFile ./nix-update.zsh)} + ''; + + nixUpdateScriptPkg = pkgs.symlinkJoin { + name = "nix-update"; + paths = [ + nixUpdateScript + nixUpdateCompletion + ]; + meta = nixUpdateScript.meta or { }; + }; in -mkScriptModule { - scope = [ "system" ]; - name = "nix-update"; - path = ./nix-update.sh; - description = "Update NixOS and/or Home Manager flake configuration\nRuns nix flake update and rebuilds the system"; - deps = [ - pkgs.git - pkgs.nix - config.programs.home-manager.package - pkgs.bash - ]; - completion.zsh = builtins.readFile ./nix-update.zsh; - inherit config; +{ + options.system.nix-update = { + enable = lib.mkEnableOption "Update NixOS and/or Home Manager flake configuration"; + + package = lib.mkOption { + type = lib.types.package; + readOnly = true; + default = nixUpdateScriptPkg; + description = "The nix-update script package."; + }; + }; + + config = lib.mkIf config.system.nix-update.enable { + home.packages = [ config.system.nix-update.package ]; + }; } -- cgit v1.2.3