01.04.2023 13:33, Mikhail пишет: > Currently default answer for the question is 'yes', which is not true > for install case, but correct for upgrade one.
True for sysupgrade(8) (at least with default /home/_sysupgrade), but certainly not true in general for every update scenario. > Changing default answer depending on the mode of the installer looks > like a good approach. Idea by Christian (naddy@), implementation and > testing are mine. It is not yet clear to me which default would benefit most installer scenarios. > install_disk() { > - if ! ask_yn "Is the disk partition already mounted?" yes; then > + local _answer > + > + # In installation mode installer doesn't automount partitions You imply that during upgrade partitions are automounted. That's true for partitions in the root disk's /etc/fstab only. But sets can be anywhere on any disk, which still have to be mounted by answering 'no' to this question. > + [[ $MODE == install ]] || _answer=yes Using == with && would be one less logical negation. > + > + if ! ask_yn "Is the disk partition already mounted?" $_answer; then $_answer may be unset, but you still pass it and thus rely on ask_yn()'s default 'no' answer. I'd just default-initialise up front and flip if conditions are met. This should read and reflect your intentions more clearly: local _answer=no [[ $MODE == upgrade ]] && _answer=yes > ask_which "disk" "contains the $MODE media" \ > '$(bsort $(get_dkdevs))' \ > '$(get_dkdevs_uninitialized)' >