feat(conf): Find how long a dataset name will be (#1)

This commit is contained in:
hygienic-books 2023-03-06 01:24:13 +01:00
parent 8e8be69f12
commit f5bb694768

View File

@ -106,6 +106,36 @@ function write_pkg_list_oneline () {
fi fi
} }
function find_max_dataset_name_length () {
local longest_op_suffix op_suffix_string
longest_op_suffix='0'
for op_suffix in "${snap_op_installation_suffix}" "${snap_op_remove_suffix}" "${snap_op_upgrade_suffix}"; do
if [[ "${#op_suffix}" -gt "${longest_op_suffix}" ]]; then
longest_op_suffix="${#op_suffix}"
fi
done
op_suffix_string="$(head -c "${longest_op_suffix}" '/dev/zero' | tr '\0' '_')"
local longest_sev_suffix sev_suffix_string
longest_sev_suffix='0'
for sev_suffix in "${snaps_trivial_suffix}" "${snaps_important_suffix}"; do
if [[ "${#sev_suffix}" -gt "${longest_sev_suffix}" ]]; then
longest_sev_suffix="${#sev_suffix}"
fi
done
sev_suffix_string="$(head -c "${longest_sev_suffix}" '/dev/zero' | tr '\0' '_')"
local max_dataset_name_length example_date_string dataset_name_no_pkgs
max_dataset_name_length='0'
example_date_string="$(date +"${snap_date_format}")"
for dataset in "${snappable_datasets[@]}"; do
dataset_name_no_pkgs="${dataset}"'@'"${snap_name_prefix}${snap_field_separator}${example_date_string}${snap_field_separator}"'op:'"${op_suffix_string}${snap_field_separator}"'sev:'"${sev_suffix_string}${snap_field_separator}"'pkgs:'
if [[ "${#dataset_name_no_pkgs}" -gt "${max_dataset_name_length}" ]]; then
max_dataset_name_length="${#dataset_name_no_pkgs}"
fi
done
}
function main () { function main () {
local pkgs_in_transaction local pkgs_in_transaction
pkgs_in_transaction=("${@}") pkgs_in_transaction=("${@}")
@ -131,6 +161,9 @@ function main () {
local pkg_list_oneline local pkg_list_oneline
write_pkg_list_oneline write_pkg_list_oneline
local max_dataset_name_length
find_max_dataset_name_length
#for pkg in "${!important_pkgs_in_transaction[@]}"; do #for pkg in "${!important_pkgs_in_transaction[@]}"; do
# printf -- 'Array item '"'"'%s'"'"' equals '"'"'%s'"'"'\n' "${pkg}" "${important_pkgs_in_transaction[${pkg}]}" # printf -- 'Array item '"'"'%s'"'"' equals '"'"'%s'"'"'\n' "${pkg}" "${important_pkgs_in_transaction[${pkg}]}"
#done #done