{ pkgs, lib, config, ... }: let cfg = config._archetypes.collections.development; hugoFirewallPort = 1313; in { imports = [ ./docker.nix ]; options._archetypes.collections.development = { utilities.enable = lib.mkEnableOption "install basic dev utilities"; android.enable = lib.mkEnableOption "install android dev tools"; c.enable = lib.mkEnableOption "install c dev tools"; lua.enable = lib.mkEnableOption "install lua dev tools"; web = { hugo = { enable = lib.mkEnableOption "install hugo"; openFirewall = lib.mkEnableOption "open the port ${hugoFirewallPort} for viewing content from hugo serve on other devices"; }; node.enable = lib.mkEnableOption "install node"; }; }; config = { environment.systemPackages = with pkgs; [ git python3 ] ++ lib.optionals cfg.android.enable [ #adb-sync android-tools ] ++ lib.optionals cfg.c.enable [ gcc git gnumake pkg-config ] ++ lib.optionals cfg.lua.enable [ lua ] ++ lib.optionals cfg.web.hugo.enable [ hugo ] ++ lib.optionals cfg.web.node.enable [ nodejs ]; networking.firewall.allowedTCPPorts = lib.mkIf cfg.web.hugo.openFirewall [ hugoFirewallPort ]; }; }