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=''
" > $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
--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 " " )"
--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 " " )"
awk '{print $2}'
)"
- echo -e "\nPurge:"
+ prmsg bold "Purge:\n"
if [[ -n "$pkg" ]] ; then
echo "$pkg"
pkg="$( echo "$pkg" | paste -sd " " )"
awk '{print $2}'
)"
- echo -e "\nReconfigure:"
+ prmsg bold "Reconfigure:\n"
if [[ -n "$pkg" ]] ; then
echo "$pkg"
pkg="$( echo "$pkg" | paste -sd " " )"
--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 " " )"
--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 " " )"
--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 " " )"
--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 " " )"
fi
# Perform requested action:
+ echo
+ date
case "$choice" in
"sync" ) syncRepo ;;
"upgrade" ) distUpgrade ;;
# 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