From 676b7f656372a42ace77bda806a5d01145784a77 Mon Sep 17 00:00:00 2001 From: Robin Candau Date: Wed, 25 Sep 2024 18:21:31 +0200 Subject: [PATCH] chore: Streamline option checking in arch-update.conf Streamline option checking in the `arch-update.conf` configuration file by optimizing the way each option are checked and the way the related variables are set. --- src/lib/common.sh | 7 +---- src/lib/config.sh | 67 ++++++++++++++--------------------------------- 2 files changed, 21 insertions(+), 53 deletions(-) diff --git a/src/lib/common.sh b/src/lib/common.sh index da68911..d6f9750 100755 --- a/src/lib/common.sh +++ b/src/lib/common.sh @@ -123,12 +123,7 @@ if [ -n "${diff_prog}" ]; then fi fi -# Definition of the tray icon style to use (default to "light" if it isn't set in the arch-update.conf configuration file) -if [ -z "${tray_icon_style}" ]; then - tray_icon_style="light" -fi - -# Definition of the icon_up-to-date function: Change icon to "up to date" +# Definition of the icon_up-to-date function: Change tray icon to "up to date" icon_up-to-date() { # shellcheck disable=SC2154 echo "${name}-${tray_icon_style}" > "${statedir}/tray_icon" diff --git a/src/lib/config.sh b/src/lib/config.sh index 175b6a5..f527940 100755 --- a/src/lib/config.sh +++ b/src/lib/config.sh @@ -46,68 +46,41 @@ fi config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/${name}/${name}.conf" # Check the "NoColor" option in arch-update.conf -if grep -Eq '^[[:space:]]*NoColor[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - no_color="y" -fi +# shellcheck disable=SC2034 +no_color=$(grep -Eq '^[[:space:]]*NoColor[[:space:]]*$' "${config_file}" 2> /dev/null && echo "y") # Check the "NoVersion" option in arch-update.conf -if grep -Eq '^[[:space:]]*NoVersion[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - no_version="y" -fi +# shellcheck disable=SC2034 +no_version=$(grep -Eq '^[[:space:]]*NoVersion[[:space:]]*$' "${config_file}" 2> /dev/null && echo "y") # Check the "AlwaysShowNews" option in arch-update.conf -if grep -Eq '^[[:space:]]*AlwaysShowNews[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - show_news="y" -fi +# shellcheck disable=SC2034 +show_news=$(grep -Eq '^[[:space:]]*AlwaysShowNews[[:space:]]*$' "${config_file}" 2> /dev/null && echo "y") # Check the "NewsNum" option in arch-update.conf -if grep -Eq '^[[:space:]]*NewsNum[[:space:]]*=[[:space:]]*[1-9][0-9]*[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - news_num=$(grep -E '^[[:space:]]*NewsNum[[:space:]]*=[[:space:]]*[1-9][0-9]*[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -else - # shellcheck disable=SC2034 - news_num="5" -fi +# shellcheck disable=SC2034 +news_num=$(grep -E '^[[:space:]]*NewsNum[[:space:]]*=[[:space:]]*[1-9][0-9]*[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]' || echo "5") # Check the "AURHelper" option in arch-update.conf -if grep -Eq '^[[:space:]]*AURHelper[[:space:]]*=[[:space:]]*(paru|yay)[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - aur_helper=$(grep -E '^[[:space:]]*AURHelper[[:space:]]*=[[:space:]]*(paru|yay)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -fi +# shellcheck disable=SC2034 +aur_helper=$(grep -E '^[[:space:]]*AURHelper[[:space:]]*=[[:space:]]*(paru|yay)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') # Check the "PrivilegeElevationCommand" option in arch-update.conf -if grep -Eq '^[[:space:]]*PrivilegeElevationCommand[[:space:]]*=[[:space:]]*(sudo|doas|run0)[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - su_cmd=$(grep -E '^[[:space:]]*PrivilegeElevationCommand[[:space:]]*=[[:space:]]*(sudo|doas|run0)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -fi +# shellcheck disable=SC2034 +su_cmd=$(grep -E '^[[:space:]]*PrivilegeElevationCommand[[:space:]]*=[[:space:]]*(sudo|doas|run0)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') # Check the "KeepOldPackages" option in arch-update.conf -if grep -Eq '^[[:space:]]*KeepOldPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null; then - old_packages_num=$(grep -E '^[[:space:]]*KeepOldPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -else - # shellcheck disable=SC2034 - old_packages_num="3" -fi +# shellcheck disable=SC2034 +old_packages_num=$(grep -E '^[[:space:]]*KeepOldPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]' || echo "3") # Check the "KeepUninstalledPackages" option in arch-update.conf -if grep -Eq '^[[:space:]]*KeepUninstalledPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null; then - uninstalled_packages_num=$(grep -E '^[[:space:]]*KeepUninstalledPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -else - # shellcheck disable=SC2034 - uninstalled_packages_num="0" -fi +# shellcheck disable=SC2034 +uninstalled_packages_num=$(grep -E '^[[:space:]]*KeepUninstalledPackages[[:space:]]*=[[:space:]]*[0-9]+[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]' || echo "0") # Check the "DiffProg" option in arch-update.conf -if grep -Eq '^[[:space:]]*DiffProg[[:space:]]*=[[:space:]]*[^[:space:]].*[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - diff_prog=$(grep -E '^[[:space:]]*DiffProg[[:space:]]*=[[:space:]]*[^[:space:]].*[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -fi +# shellcheck disable=SC2034 +diff_prog=$(grep -E '^[[:space:]]*DiffProg[[:space:]]*=[[:space:]]*[^[:space:]].*[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') # Check the "TrayIconStyle" option in arch-update.conf -if grep -Eq '^[[:space:]]*TrayIconStyle[[:space:]]*=[[:space:]]*(light|dark|blue)[[:space:]]*$' "${config_file}" 2> /dev/null; then - # shellcheck disable=SC2034 - tray_icon_style=$(grep -E '^[[:space:]]*TrayIconStyle[[:space:]]*=[[:space:]]*(light|dark|blue)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]') -fi +# shellcheck disable=SC2034 +tray_icon_style=$(grep -E '^[[:space:]]*TrayIconStyle[[:space:]]*=[[:space:]]*(light|dark|blue)[[:space:]]*$' "${config_file}" 2> /dev/null | awk -F '=' '{print $2}' | tr -d '[:space:]' || echo "light")