From 9471498fb6b52ac31b08c8a4ff8d0d74e5678037 Mon Sep 17 00:00:00 2001 From: Urban Wallasch Date: Fri, 17 Apr 2020 15:01:38 +0200 Subject: [PATCH] * Check, if running interactive. * Improved messages, comments. --- XbpsUI.sh | 58 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/XbpsUI.sh b/XbpsUI.sh index 9ca017a..ac29943 100755 --- a/XbpsUI.sh +++ b/XbpsUI.sh @@ -22,6 +22,11 @@ for arg in "$@" ; do esac done +# Check, if run interactively: +if ! tty -s ; then + echo "Standard input is not a tty, aborting." + exit 1 +fi # Make sure we can actually do anything meaningful: SUDO='' @@ -108,31 +113,47 @@ menubox_border2_color = dialog_color " > $tmp/dialogrc fi +# Pretty printing: +function prmsg() { + case "$1" in + bold ) shift; echo -en "\e[1m" ;; + green ) shift; echo -en "\e[49;32m" ;; + red ) shift; echo -en "\e[49;31m" ;; + esac + echo -en $@ + echo -en "\e[0m" +} + # Update repository package database: function syncRepo() { - echo -e "\nUpdate package lists ..." + prmsg bold "Update package lists:\n" $SUDO xbps-install -Sv } # Update all installed packages to their latest version: function distUpgrade() { - echo -e "\nUpgrade all packages ..." + prmsg bold "Upgrade installed packages:\n" $SUDO xbps-install -Suv } # Clean cache by removing obsolete binary packages: function cleanCache() { - echo -e "\nCleaning package cache ..." + prmsg bold "Clean package cache:\n" $SUDO xbps-remove -Ov } # Remove orphaned packages: function reapOrphans() { - echo -e "\nSearching for orphans ..." - $SUDO xbps-remove -ov + prmsg bold "Searching for orphans:\n" + if [[ -n "$( xbps-query -O )" ]] ; then + $SUDO xbps-remove -ov + return $? + fi + prmsg "None found.\n" + return 42 } -# Fzf options common to all actions: +# Fzf options common to all actions below: fzfOpt=( -i --multi @@ -161,7 +182,7 @@ function instPkg() { --header="Select packages to install.$fzfHint" | awk '{print $2}' )" - echo -e "\nInstall:" + prmsg bold "Install:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -181,7 +202,7 @@ function reinstPkg() { --header="Select packages to reinstall.$fzfHint" | awk '{print $2}' )" - echo -e "\nReinstall:" + prmsg bold "Reinstall:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -202,7 +223,7 @@ function purgePkg() { awk '{print $2}' )" - echo -e "\nPurge:" + prmsg bold "Purge:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -223,7 +244,7 @@ function reconfPkg() { awk '{print $2}' )" - echo -e "\nReconfigure:" + prmsg bold "Reconfigure:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -243,7 +264,7 @@ function holdPkg() { --header="Select packages to put on hold.$fzfHint" )" - echo -e "\nPut on hold:" + prmsg bold "Put on hold:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -262,7 +283,7 @@ function unholdPkg() { --header="Select packages to unhold.$fzfHint" )" - echo -e "\nUnhold held packages:" + prmsg bold "Unhold held packages:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -282,7 +303,7 @@ function markPkgManual() { --header="Select packages to mark as manual.$fzfHint" )" - echo -e "\nMarking as manually installed:" + prmsg bold "Marking as manually installed:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -301,7 +322,7 @@ function markPkgAuto() { --header="Select packages to mark as as auto.$fzfHint" )" - echo -e "\nMarking as automatically installed:" + prmsg bold "Marking as automatically installed:\n" if [[ -n "$pkg" ]] ; then echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" @@ -384,6 +405,8 @@ quit Quit" | fi # Perform requested action: + echo + date case "$choice" in "sync" ) syncRepo ;; "upgrade" ) distUpgrade ;; @@ -405,11 +428,10 @@ quit Quit" | # Report exit status of an operation: function statrep() { - echo case "$1" in - 0 ) echo -e "\e[49;32mOK\e[0m" ;; - 42 ) echo -e "\e[1mNo changes requested.\e[0m" ;; - * ) echo -e "\e[49;31mFAILED! (exit code $1)\e[0m" ;; + 0 ) prmsg green "OK\n" ;; + 42 ) prmsg bold "No changes requested.\n" ;; + * ) prmsg red "FAILED! (exit code $1)\n" ;; esac echo "Press any key to continue ..." read -sn1 -- 2.30.2