forked from mirrors/nixpkgs
add support for auto format, format options
This commit is contained in:
parent
e916273209
commit
8a63ae526f
|
@ -58,6 +58,15 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
formatOptions = mkOption {
|
||||
default = "";
|
||||
type = types.str;
|
||||
description = ''
|
||||
If <option>autoFormat</option> option is set specifies
|
||||
extra options passed to mkfs.
|
||||
'';
|
||||
};
|
||||
|
||||
autoResize = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
|
@ -81,6 +90,9 @@ let
|
|||
mountPoint = mkDefault name;
|
||||
device = mkIf (config.fsType == "tmpfs") (mkDefault config.fsType);
|
||||
options = mkIf config.autoResize "x-nixos.autoresize";
|
||||
|
||||
# -F needed to allow bare block device without partitions
|
||||
formatOptions = mkIf ((builtins.substring 0 3 config.fsType) == "ext") (mkDefault "-F");
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -192,8 +204,6 @@ in
|
|||
let
|
||||
mountPoint' = escapeSystemdPath fs.mountPoint;
|
||||
device' = escapeSystemdPath fs.device;
|
||||
# -F needed to allow bare block device without partitions
|
||||
mkfsOpts = optional ((builtins.substring 0 3 fs.fsType) == "ext") "-F";
|
||||
in nameValuePair "mkfs-${device'}"
|
||||
{ description = "Initialisation of Filesystem ${fs.device}";
|
||||
wantedBy = [ "${mountPoint'}.mount" ];
|
||||
|
@ -208,7 +218,7 @@ in
|
|||
type=$(blkid -p -s TYPE -o value "${fs.device}" || true)
|
||||
if [ -z "$type" ]; then
|
||||
echo "creating ${fs.fsType} filesystem on ${fs.device}..."
|
||||
mkfs.${fs.fsType} ${concatStringsSep " " mkfsOpts} "${fs.device}"
|
||||
mkfs.${fs.fsType} ${fs.formatOptions} "${fs.device}"
|
||||
fi
|
||||
'';
|
||||
unitConfig.RequiresMountsFor = [ "${dirOf fs.device}" ];
|
||||
|
|
Loading…
Reference in a new issue