## 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"; }; }; }