Update partition list handling
This commit is contained in:
parent
14069e46a6
commit
d93b0f529c
@ -904,6 +904,16 @@ format_as()
|
||||
errshow "${FS_CMDS[$2]} $1" && FORMATTED+=" $part"
|
||||
}
|
||||
|
||||
decr_pcount()
|
||||
{
|
||||
for i in $(printf "%s" "$@"); do
|
||||
if (( COUNT > 0 )); then
|
||||
PARTS="$(sed "/${i//\//\\/}/d" <<< "$PARTS")"
|
||||
(( COUNT-- ))
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
enable_swap()
|
||||
{
|
||||
if [[ $1 == "$MNT/swapfile" && $SWAP_SIZE ]]; then
|
||||
@ -939,16 +949,15 @@ select_device()
|
||||
[[ $1 == 'boot' ]] && msg="$_DevSelTitle for bootloader\n" || umount_dir $MNT
|
||||
|
||||
if [[ $DEV_COUNT -eq 1 && $SYS_DEVS ]]; then
|
||||
# auto select without mention (it's annoying)
|
||||
DEVICE="$(awk '{print $1}' <<< "$SYS_DEVS")"
|
||||
elif (( DEV_COUNT > 1 )); then
|
||||
tput civis
|
||||
DEVICE="$(menubox "$_DevSelTitle " "${msg}$_DevSelBody" $SYS_DEVS)" || return 1
|
||||
DEVICE="$(menubox "$_DevSelTitle " "${msg}$_DevSelBody" $SYS_DEVS)"
|
||||
[[ $DEVICE ]] || return 1
|
||||
elif [[ $DEV_COUNT -lt 1 && $1 != 'boot' ]]; then
|
||||
msgbox "$_ErrTitle" "\nNo available devices to use.\n$_Exit"; die 1
|
||||
fi
|
||||
|
||||
# if the device selected was for bootloader, set the BOOT_DEVICE
|
||||
[[ $1 == 'boot' ]] && BOOT_DEVICE="$DEVICE"
|
||||
|
||||
return 0
|
||||
@ -958,10 +967,10 @@ confirm_mount()
|
||||
{
|
||||
local part="$1" mount="$2"
|
||||
[[ $mount == "$MNT" ]] && local m="/ (root)" || local m="${mount#$MNT}"
|
||||
|
||||
if [[ $(mount) == *"$mount"* ]]; then
|
||||
infobox "$_MntTitle" "$_MntSucc\nPartition: $part\nMountpoint: $m\n" 1
|
||||
PARTS="$(sed "s~${part} [0-9]*[G-M]~~; s~${part} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
|
||||
(( COUNT > 0 )) && (( COUNT-- ))
|
||||
decr_pcount $part
|
||||
else
|
||||
infobox "$_MntTitle" "$_MntFail\n$msg\n" 1
|
||||
return 1
|
||||
@ -1053,8 +1062,7 @@ auto_partition()
|
||||
sleep 0.5
|
||||
AUTO_ROOT_PART="$(lsblk -lno NAME,TYPE $device | awk 'NR == 3 {print "/dev/"$1}')"
|
||||
mkfs.ext4 -q $AUTO_ROOT_PART >/dev/null 2>&1
|
||||
tput civis
|
||||
sleep 0.5
|
||||
tput civis; sleep 0.5
|
||||
msgbox "$_PrepParts" "\nAuto partitioning complete.\n\n$(lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE $device)\n"
|
||||
}
|
||||
|
||||
@ -1082,7 +1090,7 @@ find_partitions()
|
||||
local str="$1" err=''
|
||||
|
||||
# string of partitions as /TYPE/PART SIZE
|
||||
if [[ $IGNORE_DEV != "" ]]; then
|
||||
if [[ $IGNORE_DEV ]]; then
|
||||
PARTS="$(lsblk -lno TYPE,NAME,SIZE |
|
||||
awk "/$str/"' && !'"/$IGNORE_DEV/"' {
|
||||
sub(/^part/, "/dev/");
|
||||
@ -1139,12 +1147,18 @@ mount_menu()
|
||||
lvm_detect
|
||||
umount_dir $MNT
|
||||
find_partitions 'part|lvm|crypt' || { SEL=2; return 1; }
|
||||
|
||||
[[ $LUKS_PART ]] && decr_pcount $LUKS_PART
|
||||
[[ $LVM_PARTS ]] && decr_pcount $LVM_PARTS
|
||||
|
||||
select_root_partition || return 1
|
||||
|
||||
if [[ $SYS == "UEFI" ]]; then
|
||||
select_efi_partition || { BOOT_PART=""; return 1; }
|
||||
elif (( COUNT > 0 )); then
|
||||
select_boot_partition || { BOOT_PART=""; return 1; }
|
||||
fi
|
||||
|
||||
setup_boot || return 1
|
||||
select_swap || return 1
|
||||
select_extra_partitions || return 1
|
||||
@ -1174,9 +1188,8 @@ select_swap()
|
||||
enable_swap "$MNT/swapfile"
|
||||
SWAP_PART="/swapfile"
|
||||
else
|
||||
enable_swap "$SWAP_PART"
|
||||
PARTS="$(sed "s~${SWAP_PART} [0-9]*[G-M]~~; s~${SWAP_PART} [0-9]*\.[0-9]*[G-M]~~" <<< "$PARTS")"
|
||||
(( COUNT > 0 )) && (( COUNT-- ))
|
||||
enable_swap $SWAP_PART
|
||||
decr_pcount $SWAP_PART
|
||||
SWAP_SIZE="$(lsblk -lno SIZE $SWAP_PART)"
|
||||
fi
|
||||
return 0
|
||||
@ -1328,9 +1341,10 @@ select_root_partition()
|
||||
{
|
||||
tput civis
|
||||
if (( COUNT == 1 )); then
|
||||
ROOT_PART="$(awk 'NF > 0 {print $1}' <<< "$PARTS")"
|
||||
elif ! ROOT_PART="$(menubox "$_PrepMount" "$_SelRootBody" $PARTS)"; then
|
||||
return 1
|
||||
ROOT_PART="$(awk 'NR==1 {print $1}' <<< "$PARTS")"
|
||||
else
|
||||
ROOT_PART="$(menubox "$_PrepMount" "$_SelRootBody" $PARTS)"
|
||||
[[ $ROOT_PART ]] || return 1
|
||||
fi
|
||||
|
||||
select_filesystem "$ROOT_PART" || { ROOT_PART=""; return 1; }
|
||||
@ -1492,8 +1506,9 @@ create_user()
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "Creating user $NEWUSER with: useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER\n"
|
||||
local groups='audio,autologin,floppy,log,network,rfkill,scanner,storage,optical,power,wheel'
|
||||
|
||||
printf "Creating user $NEWUSER with: useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER\n"
|
||||
chrun "groupadd -r autologin" 2>$ERR
|
||||
errshow 1 "groupadd -r autologin"
|
||||
chrun "useradd -m -u 1000 -g users -G $groups -s $MYSHELL $NEWUSER" 2>$ERR
|
||||
|
Reference in New Issue
Block a user