krebs.git.cgit: support per-repo readmes

This commit is contained in:
tv 2018-09-28 16:18:47 +02:00
parent a93aaeecd6
commit b29452cfc3

View File

@ -121,6 +121,10 @@ let
cgit-settings = types.submodule { cgit-settings = types.submodule {
# A setting's value of `null` means cgit's default should be used. # A setting's value of `null` means cgit's default should be used.
options = { options = {
about-filter = mkOption {
type = types.nullOr types.package;
default = null;
};
cache-root = mkOption { cache-root = mkOption {
type = types.absolute-pathname; type = types.absolute-pathname;
default = "/tmp/cgit"; default = "/tmp/cgit";
@ -166,6 +170,10 @@ let
types.nullOr (types.enum ["week" "month" "quarter" "year"]); types.nullOr (types.enum ["week" "month" "quarter" "year"]);
default = "year"; default = "year";
}; };
readme = mkOption {
type = types.listOf types.str;
default = [];
};
robots = mkOption { robots = mkOption {
type = types.nullOr (types.listOf types.str); type = types.nullOr (types.listOf types.str);
default = ["nofollow" "noindex"]; default = ["nofollow" "noindex"];
@ -394,8 +402,14 @@ let
kv-to-cgitrc = k: v: getAttr (typeOf v) { kv-to-cgitrc = k: v: getAttr (typeOf v) {
bool = kv-to-cgitrc k (if v then 1 else 0); bool = kv-to-cgitrc k (if v then 1 else 0);
null = []; # This will be removed by `flatten`. null = []; # This will be removed by `flatten`.
list = "${k}=${concatStringsSep ", " v}"; list = {
readme = map (x: "readme=${x}") v;
}.${k} or "${k}=${concatStringsSep ", " v}";
int = "${k}=${toString v}"; int = "${k}=${toString v}";
set =
if subtypes.cgit-settings.check v
then "${k}=${v}"
else error "kv-to-cgitrc: unhandled type: set";
string = "${k}=${v}"; string = "${k}=${v}";
}; };
in in