53 lines
1.1 KiB
Nix
53 lines
1.1 KiB
Nix
## Mount
|
|
##
|
|
## Mount filesystems
|
|
|
|
|
|
{ lib, pkgs, config, ...}:
|
|
let
|
|
inherit (lib) mkOption types;
|
|
inherit (pkgs) liminix;
|
|
mkBoolOption = description : mkOption {
|
|
type = types.bool;
|
|
inherit description;
|
|
default = true;
|
|
};
|
|
|
|
in {
|
|
options = {
|
|
system.service.mount = mkOption {
|
|
type = liminix.lib.types.serviceDefn;
|
|
};
|
|
};
|
|
config.system.service = {
|
|
mount = liminix.callService ./service.nix {
|
|
device = mkOption {
|
|
type = types.str;
|
|
example = "/dev/sda1";
|
|
};
|
|
mountpoint = mkOption {
|
|
type = types.str;
|
|
example = "/mnt/media";
|
|
};
|
|
options = mkOption {
|
|
type = types.listOf types.str;
|
|
default = [];
|
|
example = ["noatime" "ro" "sync"];
|
|
};
|
|
fstype = mkOption {
|
|
type = types.str;
|
|
default = "auto";
|
|
example = "vfat";
|
|
};
|
|
};
|
|
};
|
|
config.programs.busybox = {
|
|
applets = ["blkid" "findfs"];
|
|
options = {
|
|
FEATURE_BLKID_TYPE = "y";
|
|
FEATURE_MOUNT_FLAGS = "y";
|
|
FEATURE_MOUNT_LABEL = "y";
|
|
FEATURE_VOLUMEID_EXT = "y";
|
|
};
|
|
};
|
|
}
|