#!/bin/bash declare -a pkgs while read pkg; do pkgs+=("${pkg}") done declare conf_file conf_file='/etc/pacman-zfs-snapshot.conf' declare important_names snaps_trivial_keep snaps_important_keep snaps_trivial_suffix snaps_important_suffix if [[ -r "${conf_file}" ]]; then source "${conf_file}" fi if [[ ! "${important_names}" ]]; then important_names='linux'; fi if [[ ! "${snaps_trivial_keep}" ]]; then snaps_trivial_keep='5'; fi if [[ ! "${snaps_important_keep}" ]]; then snaps_important_keep='5'; fi if [[ ! "${snaps_trivial_suffix}" ]]; then snaps_trivial_suffix='trv'; fi if [[ ! "${snaps_important_suffix}" ]]; then snaps_important_suffix='imp'; fi if [[ ! "${pkgs_list_max_length}" ]]; then pkgs_list_max_length='24'; fi function split_pkgs_by_importance () { local pkgs_in_transaction pkgs_in_transaction=("${@}") for pkg in "${pkgs_in_transaction[@]}"; do if grep -Piq -- '^'"${important_names}"'$' <<<"${pkg}"; then important_pkgs_in_transaction+=("${pkg}") else trivial_pkgs_in_transaction+=("${pkg}") fi done } function main () { local pkgs_in_transaction pkgs_in_transaction=("${@}") declare -a important_pkgs_in_transaction trivial_pkgs_in_transaction split_pkgs_by_importance "${pkgs_in_transaction[@]}" #for pkg in "${!important_pkgs_in_transaction[@]}"; do # printf -- 'Array item '"'"'%s'"'"' equals '"'"'%s'"'"'\n' "${pkg}" "${important_pkgs_in_transaction[${pkg}]}" #done } main "${pkgs[@]}"