blob: 87fe2d2c8d9d0c84a1902f9ebec46b3e84d2c35c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
{ 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 ];
};
}
|