Create a script for prompting the device path

This commit is contained in:
Manuel Thalmann 2024-07-06 21:52:45 +02:00
parent 2d72556079
commit 42e9cd15d3

View file

@ -44,6 +44,12 @@
else "/dev/${config.deviceName}";
};
deviceScript = mkOption {
type = types.str;
description = "A command for loading the device path into the device variable";
internal = true;
};
partitions = mkOption {
type = types.attrsOf (types.nullOr partitionType);
description = "The partitions of the disk.";
@ -155,31 +161,32 @@
''sudo sfdisk --part-type ${diskVar} ${toString partition.index} ${mkType partition.type}'')
partitions);
in {
deviceScript = if osDisk && config.devicePath == null then ''
${diskSelector}
''
else ''
local ${diskVarName}=${config.devicePath}
${if osDisk then ''
. ${./../../scripts/Common/Scripts/is-truthy.sh}
if [ ! -b ${diskVar} ]; then
function fallback() {
echo "Couldn't find the specified disk \"${diskVar}\"."
local answer
read -p "Do you want to install the OS on another disk? [y/n] " answer
if isTruthy "$answer"; then
${diskSelector}
else
exit 1
fi
}
fallback;
fi
'' else ""}
'';
script = ''
function partition() {
${
if osDisk && config.devicePath == null then ''
${diskSelector}
''
else ''
local ${diskVarName}=${config.devicePath}
${if osDisk then ''
. ${./../../scripts/Common/Scripts/is-truthy.sh}
if [ ! -b ${diskVar} ]; then
function fallback() {
echo "Couldn't find the specified disk \"${diskVar}\"."
local answer
read -p "Do you want to install the OS on another disk? [y/n] " answer
if isTruthy "$answer"; then
${diskSelector}
else
exit 1
fi
}
fallback;
fi
'' else ""}
''}
${config.deviceScript}
${if (!config.wipe) then cleanup else ""}