From: Urban Wallasch Date: Tue, 21 Apr 2020 09:49:51 +0000 (+0200) Subject: * Use colored output only on terminals. X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=53e2a76c84c377d77dce920fd720c15c43b351ee;p=xbpsui.git * Use colored output only on terminals. * Print the command being executed. * Several small improvements. * Bumped version to 2.0.3. --- diff --git a/XbpsUI.sh b/XbpsUI.sh index c254c43..4e82a72 100755 --- a/XbpsUI.sh +++ b/XbpsUI.sh @@ -1,6 +1,6 @@ #!/bin/bash -verstr="XbpsUI 2.0.2" +verstr="XbpsUI 2.0.3" # Evaluate command line: for arg in "$@" ; do @@ -19,11 +19,17 @@ for arg in "$@" ; do done # Check, if run interactively: -if ! tty -s ; then +if [ ! -t 0 ] ; then echo "Standard input is not a tty, aborting." exit 1 fi +# Enable colored output only for terminals: +useColor=0 +if [ -t 1 ] ; then + useColor=1 +fi + # Make sure we can actually do anything meaningful: if ! command -pv "xbps-install" > /dev/null ; then echo "The xbps packaging system is not available, aborting." @@ -85,37 +91,45 @@ trapWithArg cleanup EXIT SIGINT SIGTERM SIGQUIT SIGHUP # 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" ;; + bold ) shift; (( $useColor )) && echo -en "\e[1m" ;; + green ) shift; (( $useColor )) && echo -en "\e[49;32m" ;; + red ) shift; (( $useColor )) && echo -en "\e[49;31m" ;; + cyan ) shift; (( $useColor )) && echo -en "\e[49;36m" ;; esac echo -en $@ - echo -en "\e[0m" + (( $useColor )) && echo -en "\e[0m" +} + +# Print and run a command: +function runCmd() { + prmsg cyan $@ + echo + $@ } # Update repository package database: function syncRepo() { prmsg bold "Update package lists:\n" - $SUDO xbps-install -Sv + runCmd $SUDO xbps-install -Sv } # Update all installed packages to their latest version: function distUpgrade() { prmsg bold "Upgrade installed packages:\n" - $SUDO xbps-install -Suv + runCmd $SUDO xbps-install -Suv } # Clean cache by removing obsolete binary packages: function cleanCache() { prmsg bold "Clean package cache:\n" - $SUDO xbps-remove -Ov + runCmd $SUDO xbps-remove -Ov } # Remove orphaned packages: function reapOrphans() { - prmsg bold "Searching for orphans:\n" + prmsg bold "Remove orphans:\n" if [[ -n "$( xbps-query -O )" ]] ; then - $SUDO xbps-remove -ov + runCmd $SUDO xbps-remove -ov return $? fi prmsg "None found.\n" @@ -153,9 +167,8 @@ function instPkg() { )" prmsg bold "Install:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-install -v -S $pkg + runCmd $SUDO xbps-install -v -S $pkg return $? fi return 42 @@ -173,9 +186,8 @@ function reinstPkg() { )" prmsg bold "Reinstall:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-install -v -f -S $pkg + runCmd $SUDO xbps-install -v -f -S $pkg return $? fi return 42 @@ -194,9 +206,8 @@ function purgePkg() { prmsg bold "Purge:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-remove -v -R $pkg + runCmd $SUDO xbps-remove -v -R $pkg return $? fi return 42 @@ -215,9 +226,8 @@ function reconfPkg() { prmsg bold "Reconfigure:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-reconfigure -f -v $pkg + runCmd $SUDO xbps-reconfigure -f -v $pkg return $? fi return 42 @@ -233,11 +243,10 @@ function holdPkg() { --header="Select packages to put on hold.$fzfHint" )" - prmsg bold "Put on hold:\n" + prmsg bold "Hold packages:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-pkgdb -v -m hold $pkg + runCmd $SUDO xbps-pkgdb -v -m hold $pkg return $? fi return 42 @@ -254,9 +263,8 @@ function unholdPkg() { prmsg bold "Unhold held packages:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-pkgdb -v -m unhold $pkg + runCmd $SUDO xbps-pkgdb -v -m unhold $pkg return $? fi return 42 @@ -272,11 +280,10 @@ function markPkgManual() { --header="Select packages to mark as manual.$fzfHint" )" - prmsg bold "Marking as manually installed:\n" + prmsg bold "Mark as manually installed:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-pkgdb -v -m manual $pkg + runCmd $SUDO xbps-pkgdb -v -m manual $pkg return $? fi return 42 @@ -291,11 +298,10 @@ function markPkgAuto() { --header="Select packages to mark as as auto.$fzfHint" )" - prmsg bold "Marking as automatically installed:\n" + prmsg bold " Mark as automatically installed:\n" if [[ -n "$pkg" ]] ; then - echo "$pkg" pkg="$( echo "$pkg" | paste -sd " " )" - $SUDO xbps-pkgdb -v -m auto $pkg + runCmd $SUDO xbps-pkgdb -v -m auto $pkg return $? fi return 42 @@ -329,10 +335,6 @@ quit Quit" | --header=$'\n'"$verstr"$'\n\n' | awk '{ print $1 }' )" - if [[ -z "$choice" ]] ; then - # quit / cancel menu - exit 0 - fi # Perform requested action: echo @@ -350,7 +352,7 @@ quit Quit" | "auto" ) markPkgAuto ;; "hold" ) holdPkg ;; "unhold" ) unholdPkg ;; - "quit" ) exit 0 ;; + "quit"|"" ) exit 0 ;; * ) echo "$choice: Action not implemented, WTF!?!" ; false ;; esac return $?