mirror of
https://github.com/nix-community/disko
synced 2024-11-13 23:57:12 +00:00
make-disk-image: use nix path-info to automatically set the imageSize
This commit is contained in:
parent
1144887c6f
commit
91f1f59969
2 changed files with 13 additions and 6 deletions
|
@ -24,7 +24,14 @@ let
|
|||
util-linux
|
||||
];
|
||||
preVM = ''
|
||||
${lib.concatMapStringsSep "\n" (disk: "truncate -s ${disk.imageSize} ${disk.name}.raw") (lib.attrValues nixosConfig.config.disko.devices.disk)}
|
||||
export PATH=$PATH:${lib.makeBinPath (with pkgs; [ nix jq ])}
|
||||
export NIX_STATE_DIR=$TMPDIR/state
|
||||
export NIX_CONFIG="experimental-features = nix-command"
|
||||
nix-store --load-db < ${pkgs.closureInfo {
|
||||
rootPaths = [ systemToInstall.config.system.build.toplevel ];
|
||||
}}/registration
|
||||
|
||||
${lib.concatMapStringsSep "\n" (disk: "truncate -s $(($(set -x; nix path-info --json ${systemToInstall.config.system.build.toplevel} | jq .[].closureSize) + ${toString disk.imageSizeExtraBytes})) ${disk.name}.raw") (lib.attrValues nixosConfig.config.disko.devices.disk)}
|
||||
'';
|
||||
postVM = ''
|
||||
# shellcheck disable=SC2154
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
type = diskoLib.optionTypes.absolute-pathname; # TODO check if subpath of /dev ? - No! eg: /.swapfile
|
||||
description = "Device path";
|
||||
};
|
||||
imageSize = lib.mkOption {
|
||||
type = lib.types.strMatching "[0-9]+[KMGTP]?";
|
||||
imageSizeExtraBytes = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
description = ''
|
||||
size of the image if the makeDiskImages function from diksoLib is used.
|
||||
is used as an argument to truncate -s
|
||||
extra size in bytes to add to the end of the disk image if the makeDiskImages function from diksoLib is used.
|
||||
This is used as an argument to truncate -s
|
||||
'';
|
||||
default = "2G";
|
||||
default = 2000000000;
|
||||
};
|
||||
content = diskoLib.deviceType { parent = config; device = config.device; };
|
||||
_meta = lib.mkOption {
|
||||
|
|
Loading…
Reference in a new issue