Signed-off-by: dusk y.bera003.06@protonmail.com
+32
-1
nix/modules/knot.nix
+32
-1
nix/modules/knot.nix
···
58
58
};
59
59
};
60
60
61
+
motd = mkOption {
62
+
type = types.nullOr types.str;
63
+
default = null;
64
+
description = ''
65
+
Message of the day
66
+
67
+
The contents are shown as-is; eg. you will want to add a newline if
68
+
setting a non-empty message since the knot won't do this for you.
69
+
'';
70
+
};
71
+
72
+
motdFile = mkOption {
73
+
type = types.nullOr types.path;
74
+
default = null;
75
+
description = ''
76
+
File containing message of the day
77
+
78
+
The contents are shown as-is; eg. you will want to add a newline if
79
+
setting a non-empty message since the knot won't do this for you.
80
+
'';
81
+
};
82
+
61
83
server = {
62
84
listenAddr = mkOption {
63
85
type = types.str;
···
104
126
cfg.package
105
127
];
106
128
107
-
system.activationScripts.gitConfig = ''
129
+
system.activationScripts.gitConfig = let
130
+
setMotd =
131
+
if cfg.motdFile != null && cfg.motd != null then
132
+
throw "motdFile and motd cannot be both set"
133
+
else ''
134
+
${if cfg.motdFile != null then "cat ${cfg.motdFile} > ${cfg.stateDir}/motd" else ""}
135
+
${if cfg.motd != null then ''echo "${cfg.motd}" > ${cfg.stateDir}/motd'' else ""}
136
+
'';
137
+
in ''
108
138
mkdir -p "${cfg.repo.scanPath}"
109
139
chown -R ${cfg.gitUser}:${cfg.gitUser} "${cfg.repo.scanPath}"
110
140
···
116
146
[receive]
117
147
advertisePushOptions = true
118
148
EOF
149
+
${setMotd}
119
150
chown -R ${cfg.gitUser}:${cfg.gitUser} "${cfg.stateDir}"
120
151
'';
121
152