summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbill-auger <mr.j.spam.me@gmail.com>2022-08-13 08:06:22 -0400
committerbill-auger <mr.j.spam.me@gmail.com>2022-08-16 08:12:58 -0400
commitb57b71aacb953fa11b37ea8adaf582230017a48f (patch)
tree7d7ecd3d947ab73e84903431440b9e3b33aac23a
parent9e768131a7ae55066ad027908af304952abd2be9 (diff)
refactor PopulatePartsData PopulatePartOptions
-rwxr-xr-xinstall.sh9
-rw-r--r--session-common.sh.inc22
2 files changed, 17 insertions, 14 deletions
diff --git a/install.sh b/install.sh
index 9b34d0f..686c404 100755
--- a/install.sh
+++ b/install.sh
@@ -499,7 +499,8 @@ _PartitionManual()
# query partition information
local device_n=$(GetStateVar 'DEVICE_N')
- PopulatePartOptions ${device_n} # PopulatePartOptions() populates DlgParams
+ PopulatePartsData $(( ${device_n} )) # populates $PartsData
+ PopulatePartOptions # populates $DlgParams
(( ${#DlgParams[@]} )) || ExitFail "${TR[part_none-${Lang}]}"
# prompt for root partition
@@ -508,7 +509,7 @@ _PartitionManual()
"${DlgParams[@]}" )
if [[ -n "${part_n}" ]]
then SetStateVar 'ROOT_PART' ${device}${part_n}
- RemoveOption ${part_n} ; PopulatePartOptions ${device_n} ;
+ RemovePartOption ${part_n}
else exit
fi
@@ -521,7 +522,7 @@ _PartitionManual()
"${DlgParams[@]}" )
if [[ -n "${part_n}" ]]
then SetStateVar 'BOOT_PART' ${device}${part_n}
- RemoveOption ${part_n} ; PopulatePartOptions ${device_n} ;
+ RemovePartOption ${part_n}
fi
fi
if (( ${#DlgParams[@]} ))
@@ -531,7 +532,7 @@ _PartitionManual()
"${DlgParams[@]}" )
if [[ -n "${part_n}" ]]
then SetStateVar 'HOME_PART' ${device}${part_n}
- RemoveOption ${part_n} ; PopulatePartOptions ${device_n} ;
+ RemovePartOption ${part_n}
fi
fi
}
diff --git a/session-common.sh.inc b/session-common.sh.inc
index 4af8e20..4859d01 100644
--- a/session-common.sh.inc
+++ b/session-common.sh.inc
@@ -292,20 +292,21 @@ GetDevice() # (disk_data_n)
PopulatePartsData() # (disk_data_n) # sets $PartsData
{
- local disk_data_n=$1
+ local disk_data_n=$(( $1 - 1 )) # dialog device_n is 1-based
local disk_parts_data=( $(GetDiskPartsData ${disk_data_n}) )
local part_data_n
local disk_part_data
local dlg_part_n
PartsData=()
- # populate params array for dialog - example output:
- # 1 "/dev/sdb1 9662MB ext4" 2 "/dev/sdb2 1048kB"
+ # populate storage array for partition data - example PartsData:
+ # [1]="/dev/sdb1 9662MB ext4" [2]="/dev/sdb2 1048kB"
for (( part_data_n=0 ; part_data_n < ${#disk_parts_data[@]} ; ++part_data_n ))
do disk_part_data="$(GetDiskPartData ${disk_data_n} ${part_data_n})"
- dlg_part_n=$(( ${part_data_n} + 1 ))
- if ! [[ "${disk_part_data}" =~ linux-swap ]] && \
- ! mount | grep "^${disk_part_data/ *} " > /dev/null
+ dlg_part_n=$(( ${part_data_n} + 1 )) # sparse array for selective deletion
+
+ if ! [[ "${disk_part_data}" =~ linux-swap ]] && # ignore swap
+ ! mount | grep "^${disk_part_data/ *} " > /dev/null # ignore mounted
then PartsData[${dlg_part_n}]="${disk_part_data}"
fi
done
@@ -324,22 +325,23 @@ PopulateDisksOptions() # sets $DlgParams
done
}
-PopulatePartOptions() # (device_n) # sets $DlgParams
+PopulatePartOptions() # sets $DlgParams, assumes $PartsData
{
- local dlg_device_n=$1
local part_data_n
DlgParams=()
- PopulatePartsData $(( ${dlg_device_n} - 1 )) # populates PartsData
+ # populate params array for dialog - example DlgParams:
+ # ( 1 "/dev/sdb1 9662MB ext4" 2 "/dev/sdb2 1048kB" )
for part_data_n in $(tr ' ' '\n' <<<${!PartsData[@]} | sort)
do DlgParams+=( ${part_data_n} "${PartsData[${part_data_n}]}" )
done
}
-RemoveOption() # (part_n) # modifies $PartsData
+RemovePartOption() # (part_n) # modifies $PartsData
{
local dlg_part_n=$1
unset 'PartsData['"${dlg_part_n}"']'
+ PopulatePartOptions
}