fix
This commit is contained in:
@@ -1,6 +1,28 @@
|
||||
{ lib,... }:
|
||||
let
|
||||
|
||||
inherit (lib) mkOption;
|
||||
inherit (lib.types) attrsOf coercedTo listOf str submodule nullOr port bool oneOf anything enum;
|
||||
pathEntryType = coercedTo str (path: { inherit path; }) (submodule {
|
||||
options = {
|
||||
path = mkOption { type = str; };
|
||||
owner = mkOption {
|
||||
type = str;
|
||||
default = "root:root";
|
||||
};
|
||||
mode = mkOption {
|
||||
type = str;
|
||||
default = "0755";
|
||||
};
|
||||
dirs = mkOption {
|
||||
type = listOf str;
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
});
|
||||
mkPathOption = defaultPath: defaults: mkOption {
|
||||
type = pathEntryType;
|
||||
default = { path = defaultPath; } // defaults;
|
||||
};
|
||||
in with lib; {
|
||||
domain = mkOption { type = types.str; };
|
||||
mail = {
|
||||
@@ -11,21 +33,21 @@ in with lib; {
|
||||
|
||||
path = mkOption {
|
||||
type = types.submodule {
|
||||
freeformType = types.attrsOf types.str;
|
||||
freeformType = attrsOf pathEntryType;
|
||||
options = {
|
||||
config = mkOption { type = types.str; default = "/media/config"; };
|
||||
data = mkOption { type = types.str; default = "/media/data"; };
|
||||
download = mkOption { type = types.str; default = "/media/data/download"; };
|
||||
cloud = mkOption { type = types.str; default ="/media/media/cloud"; };
|
||||
film = mkOption { type = types.str; default ="/media/media/film"; };
|
||||
book = mkOption { type = types.str; default ="/media/media/book"; };
|
||||
manga = mkOption { type = types.str; default ="/media/media/manga"; };
|
||||
photo = mkOption { type = types.str; default ="/media/media/photo"; };
|
||||
# music = mkOption { type = types.str; default ="/media/media/music"; };
|
||||
config = mkPathOption "/media/config" { };
|
||||
data = mkPathOption "/media/data" { };
|
||||
download = mkPathOption "/media/data/download" { owner = "1000:1000"; };
|
||||
cloud = mkPathOption "/media/media/cloud" { owner = "33:33"; };
|
||||
film = mkPathOption "/media/media/film" { owner = "1000:1000"; };
|
||||
book = mkPathOption "/media/media/book" { owner = "1000:1000"; };
|
||||
manga = mkPathOption "/media/media/manga" { owner = "1000:1000"; };
|
||||
photo = mkPathOption "/media/media/photo" { owner = "1000:1000"; };
|
||||
# music = mkPathOption "/media/media/music" { owner = "1000:1000"; };
|
||||
|
||||
dlComplete = mkOption { type = types.str; default ="/media/download/complete"; };
|
||||
dlIncomplete = mkOption { type = types.str; default ="/media/download/incomplete"; };
|
||||
dlConverted = mkOption { type = types.str; default ="/media/download/converted"; };
|
||||
dlComplete = mkPathOption "/media/download/complete" { owner = "1000:1000"; };
|
||||
dlIncomplete = mkPathOption "/media/download/incomplete" { owner = "1000:1000"; };
|
||||
dlConverted = mkPathOption "/media/download/converted" { owner = "1000:1000"; };
|
||||
};
|
||||
};
|
||||
default = {};
|
||||
|
||||
Reference in New Issue
Block a user