docs: refactor

This commit is contained in:
Daniel Langbein 2023-03-16 17:30:32 +01:00
parent 2e3db5e3dc
commit 2febea18d1
3 changed files with 33 additions and 31 deletions

View File

@ -8,10 +8,11 @@
# -x, --sort column # -x, --sort column
function get_uuid() { function get_uuid() {
# arg $1: partition # arg $1: Partition
# arg $2: variable name to store UUID # arg $2: Variable name to store UUID
local -n ptr=$2 || return $? local -n ptr=$2 || return $?
# shellcheck disable=SC2034
ptr="$(blkid -o value -s UUID "${1}")" || return $? ptr="$(blkid -o value -s UUID "${1}")" || return $?
} }
@ -41,7 +42,7 @@ function get_block_devices_with_size() {
# @post # @post
# BLOCK_DEVICE_SIZES (array with two entries for each block device: device path and device size) # BLOCK_DEVICE_SIZES (array with two entries for each block device: device path and device size)
# Get list of devices and their sizes, one pair per line # Get list of devices and their sizes, one pair per line.
# Use sed to remove multiple white spaces: sed 's|\s\s*| |' # Use sed to remove multiple white spaces: sed 's|\s\s*| |'
BLOCK_DEVICE_SIZES="$(lsblk -dplnx size -o name,size | grep -Ev 'boot|rpmb|loop' | sed 's|\s\s*| |' | tac)" || return $? BLOCK_DEVICE_SIZES="$(lsblk -dplnx size -o name,size | grep -Ev 'boot|rpmb|loop' | sed 's|\s\s*| |' | tac)" || return $?
@ -62,9 +63,9 @@ function partition() {
# BOOT_PART # BOOT_PART
# LUKS_PART # LUKS_PART
# if BOOT_PART_SIZE not given, set to default value # If BOOT_PART_SIZE not given, set to default value
BOOT_PART_SIZE="${BOOT_PART_SIZE:='261'}" BOOT_PART_SIZE="${BOOT_PART_SIZE:='261'}"
# if too small, print warning and exit # If too small, print warning and exit
if [ "${BOOT_PART_SIZE}" -lt '261' ]; then if [ "${BOOT_PART_SIZE}" -lt '261' ]; then
echo 'BOOT_PART_SIZE should be larger than 260!'; echo 'BOOT_PART_SIZE should be larger than 260!';
return 1; return 1;
@ -156,7 +157,7 @@ function format() {
luks_name=$(basename "${LUKS_PART}") luks_name=$(basename "${LUKS_PART}")
DATA_PART="/dev/mapper/${luks_name}" DATA_PART="/dev/mapper/${luks_name}"
# open luks partition # Open luks partition
printf '%s' "${LUKS_PWD}" | sudo cryptsetup luksOpen "${LUKS_PART}" "${luks_name}" || return $? printf '%s' "${LUKS_PWD}" | sudo cryptsetup luksOpen "${LUKS_PART}" "${luks_name}" || return $?
;; ;;
false) false)

View File

@ -4,8 +4,8 @@ function ask_user_if_empty {
# Only one line of user input is allowed. # Only one line of user input is allowed.
# The input must not be empty. # The input must not be empty.
# #
# arg $1: name of variable to store user input # arg $1: Name of variable to store user input
# arg $2: text to display (e.g. "Enter hostname:") # arg $2: Text to display (e.g. "Enter hostname:")
if [ "$#" -ne 2 ]; then if [ "$#" -ne 2 ]; then
echo 'ask_user_if_empty requires two args!'; echo 'ask_user_if_empty requires two args!';
return 1 return 1
@ -19,12 +19,12 @@ function ask_user_if_empty {
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
if [ -z "${ptr}" ]; then if [ -z "${ptr}" ]; then
# if ptr has no value yet, ask user for input! # If ptr has no value yet, ask user for input!
echo "${2}" echo "${2}"
read -r ptr || return $? read -r ptr || return $?
fi fi
# check string length to be greater than zero! # Check string length to be greater than zero!
if [ "${#ptr}" -lt 1 ]; then if [ "${#ptr}" -lt 1 ]; then
echo 'The input must not be empty!'; echo 'The input must not be empty!';
return 1; return 1;
@ -34,9 +34,9 @@ function ask_user_if_empty {
function single_choice_if_empty { function single_choice_if_empty {
# If variable with name $1 is empty, then let user select one of the given options. # If variable with name $1 is empty, then let user select one of the given options.
# #
# arg $1: name of variable to store the selected option # arg $1: Name of variable to store the selected option
# arg $2: text to display # arg $2: Text to display
# arg $3: name of variable with array of options to display (for each option there must be two entries in the array: Item and description) # arg $3: Name of variable with array of options to display (for each option there must be two entries in the array: Item and description)
if [ "$#" -ne 3 ]; then if [ "$#" -ne 3 ]; then
echo 'single_choice_if_empty requires three args!'; echo 'single_choice_if_empty requires three args!';
return 1 return 1
@ -51,7 +51,7 @@ function single_choice_if_empty {
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
if [ -z "${ptr}" ]; then if [ -z "${ptr}" ]; then
# if ptr has no value yet, ask user for input! # If ptr has no value yet, ask user for input!
local -n MENU_OPTIONS=$3 || return $? local -n MENU_OPTIONS=$3 || return $?
ptr=$(dialog --stdout --menu "${2}" 0 0 0 "${MENU_OPTIONS[@]}") || { ptr=$(dialog --stdout --menu "${2}" 0 0 0 "${MENU_OPTIONS[@]}") || {
@ -65,9 +65,9 @@ function single_choice_if_empty {
function multi_choice_if_empty { function multi_choice_if_empty {
# If variable with name $1 is empty, then let user select one or more of the given options. # If variable with name $1 is empty, then let user select one or more of the given options.
# #
# arg $1: name of variable to store array of selected options # arg $1: Name of variable to store array of selected options
# arg $2: text to display # arg $2: Text to display
# arg $3: name of variable with array of options to display (for each option there must be three entries in the array: Item, description, on/off) # arg $3: Name of variable with array of options to display (for each option there must be three entries in the array: Item, description, on/off)
if [ "$#" -ne 3 ]; then if [ "$#" -ne 3 ]; then
echo 'multi_choice_if_empty requires three args!'; echo 'multi_choice_if_empty requires three args!';
return 1 return 1
@ -82,17 +82,18 @@ function multi_choice_if_empty {
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
if [ -z "${ptr}" ]; then if [ -z "${ptr}" ]; then
# if ptr has no value yet, ask user for input! # If ptr has no value yet, ask user for input!
local -n MENU_OPTIONS=$3 || return $? local -n MENU_OPTIONS=$3 || return $?
# shellcheck disable=SC2034 # Variable name used below.
TMP1=$(dialog --stdout --checklist "${2}" 0 0 0 "${MENU_OPTIONS[@]}") || { TMP1=$(dialog --stdout --checklist "${2}" 0 0 0 "${MENU_OPTIONS[@]}") || {
echo 'Error during menu selection!' echo 'Error during menu selection!'
exit 1 exit 1
} }
clear clear
# Result of dialog is space separated list # Result of dialog is a space separated list.
# Store this as an array # Store this as an array.
# Without newline at last array element: https://unix.stackexchange.com/a/519917/315162 # Without newline at last array element: https://unix.stackexchange.com/a/519917/315162
# readarray -d " " -t ptr < <(printf '%s' "$TMP1") # readarray -d " " -t ptr < <(printf '%s' "$TMP1")
# #

View File

@ -1,9 +1,9 @@
function join_by() { function join_by() {
# Join array elements with character $1 # Join array elements with character $1
# #
# arg $1: delimiter # arg $1: Delimiter
# arg $2: name of source array # arg $2: Name of source array
# arg $3: variable name to store result # arg $3: Variable name to store result
local -n ptr=$2 || return $? local -n ptr=$2 || return $?
local -n ptr2=$3 || return $? local -n ptr2=$3 || return $?
@ -14,10 +14,10 @@ function join_by() {
function newline_to_space() { function newline_to_space() {
# Replaces all newlines with spaces # Replaces all newlines with spaces
# #
# arg $1: name of variable # arg $1: Name of variable
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
# Replace newlines with spaces # Replace newlines with spaces.
# See bash string substitution: https://gist.github.com/JPvRiel/b279524d3e56229a896477cb8082a72b # See bash string substitution: https://gist.github.com/JPvRiel/b279524d3e56229a896477cb8082a72b
# echo "replacing newlines in str: -->$ptr<--" # echo "replacing newlines in str: -->$ptr<--"
@ -27,10 +27,10 @@ function newline_to_space() {
function newline_separated_to_array() { function newline_separated_to_array() {
# Watch out for tailing newlines as these will get an empty array entry at the end. # Watch out for tailing newlines as these will get an empty array entry at the end.
# $1 and $2 can be equal (if the result shall be written to the input variable) # $1 and $2 can be equal (if the result shall be written to the input variable).
# #
# arg $1: name of variable with newline separated list # arg $1: Name of variable with newline separated list
# arg $2: name of array to store values into # arg $2: Name of array to store values into
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
local -n ptr2=$2 || return $? local -n ptr2=$2 || return $?
@ -40,8 +40,8 @@ function newline_separated_to_array() {
} }
function space_separated_to_array() { function space_separated_to_array() {
# arg $1: name of variable with space separated list # arg $1: Name of variable with space separated list
# arg $2: name of array to store values into # arg $2: Name of array to store values into
local -n ptr=$1 || return $? local -n ptr=$1 || return $?
# shellcheck disable=SC2178 # shellcheck disable=SC2178
@ -60,7 +60,7 @@ function get_cpu_vendor() {
if [[ -z "${CPU_VENDOR}" ]] || [[ "${CPU_VENDOR}" == 'autodetect' ]]; then if [[ -z "${CPU_VENDOR}" ]] || [[ "${CPU_VENDOR}" == 'autodetect' ]]; then
# If run virtual environment (e.g. VirtualBox) then no CPU microcode is required # If run virtual environment (e.g. VirtualBox) then no CPU microcode is required.
if grep '^flags.*hypervisor' /proc/cpuinfo >/dev/null; then if grep '^flags.*hypervisor' /proc/cpuinfo >/dev/null; then
echo 'Detected virtual environment.' echo 'Detected virtual environment.'
CPU_VENDOR='none' CPU_VENDOR='none'