Refactor the confirmation dialogue
This commit is contained in:
parent
9060a6f304
commit
9540680341
28
lib/modules/partition/confirm.fish
Normal file
28
lib/modules/partition/confirm.fish
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/env fish
|
||||||
|
function confirm -a message default
|
||||||
|
set -l options (echo "[y/n]" | string replace $default (string upper $default))
|
||||||
|
|
||||||
|
while true
|
||||||
|
read -l value -P "$message $options "
|
||||||
|
set value (string lower "$value")
|
||||||
|
|
||||||
|
if [ -z "$value" ]
|
||||||
|
set value $default
|
||||||
|
end
|
||||||
|
|
||||||
|
if contains "$value" "0" "false" "n" "no"
|
||||||
|
false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if contains "$value" "1" "true" "y" "yes"
|
||||||
|
true
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
echo "The specified value `$value` is invalid!"
|
||||||
|
echo "Please try again"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
confirm $argv
|
|
@ -177,13 +177,10 @@
|
||||||
else ''
|
else ''
|
||||||
${diskVarName}=${config.devicePath}
|
${diskVarName}=${config.devicePath}
|
||||||
${if osDisk then ''
|
${if osDisk then ''
|
||||||
. ${./is-truthy.sh}
|
|
||||||
if [ ! -b ${diskVar} ]; then
|
if [ ! -b ${diskVar} ]; then
|
||||||
function fallback() {
|
function fallback() {
|
||||||
echo "Couldn't find the specified disk \"${diskVar}\"."
|
echo "Couldn't find the specified disk \"${diskVar}\"."
|
||||||
local answer
|
if fish ${./confirm.fish} "Do you want to install the OS on another disk?"; then
|
||||||
read -p "Do you want to install the OS on another disk? [y/n] " answer
|
|
||||||
if isTruthy "$answer"; then
|
|
||||||
${diskSelector}
|
${diskSelector}
|
||||||
else
|
else
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -358,14 +355,12 @@
|
||||||
] ++
|
] ++
|
||||||
(builtins.map (_: _.deviceScript) disks) ++
|
(builtins.map (_: _.deviceScript) disks) ++
|
||||||
lib.optionals ((builtins.length disks) > 0) [
|
lib.optionals ((builtins.length disks) > 0) [
|
||||||
". ${./is-truthy.sh}"
|
|
||||||
''echo "$(tput setaf 3)==== WARNING ====$(tput sgr0)"''
|
''echo "$(tput setaf 3)==== WARNING ====$(tput sgr0)"''
|
||||||
(''echo "Continuing this script will alter the partitions of '' + (
|
(''echo "Continuing this script will alter the partitions of '' + (
|
||||||
lib.strings.concatStringsSep ", " (builtins.map (_: "${_.deviceVariable}") (lib.lists.init disks))
|
lib.strings.concatStringsSep ", " (builtins.map (_: "${_.deviceVariable}") (lib.lists.init disks))
|
||||||
) + (if (builtins.length disks) > 1 then " and " else "") + (lib.lists.last disks).deviceVariable + ''"'')
|
) + (if (builtins.length disks) > 1 then " and " else "") + (lib.lists.last disks).deviceVariable + ''"'')
|
||||||
''read -p "Are you sure you want to continue? [y/n] " answer''
|
|
||||||
''
|
''
|
||||||
if ! isTruthy "$answer"; then
|
if ! fish ${./confirm.fish} "Are you sure you want to continue?" "n"; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
''
|
''
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
function isTruthy() {
|
|
||||||
local value;
|
|
||||||
value="$1";
|
|
||||||
|
|
||||||
[ ! -z "$value" ] &&
|
|
||||||
[ "$value" != "0" ] &&
|
|
||||||
[ "$value" != "false" ] &&
|
|
||||||
[ "$value" != "n" ] &&
|
|
||||||
[ "$value" != "no" ];
|
|
||||||
}
|
|
Loading…
Reference in a new issue