summaryrefslogtreecommitdiff
path: root/archetypes/collections/development/default.nix
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 ];
	};
}