{ # Snowfall Lib provides a customized `lib` instance with access to your flake's library # as well as the libraries available from your flake's inputs. lib, # An instance of `pkgs` with your overlays and packages applied is also available. pkgs, # You also have access to your flake's inputs. inputs, # Additional metadata is provided by Snowfall Lib. system, # The system architecture for this host (eg. `x86_64-linux`). target, # The Snowfall Lib target for this system (eg. `x86_64-iso`). format, # A normalized name for the system target (eg. `iso`). virtual , # A boolean to determine whether this system is a virtual target using nixos-generators. systems, # An attribute map of your defined hosts. # All other arguments come from the module system. config, ... }: with lib; let cfg = config.modules.topgrade; in { options.modules.topgrade = { enable = mkOption { default = false; }; }; config = mkIf cfg.enable { programs.topgrade = { enable = true; settings = { misc.no_self_update = true; misc.pre_sudo = true; # Cache sudo password for 5 more minutes misc.assume_yes = true; misc.no_retry = true; # pre_commands."Update dotfiles flake" = "home-update-flake"; git = { # Additional git repositories to pull repos = [ "~/.dotfiles" "~/dev/*" ]; }; }; }; }; }