#!/bin/bash # This is a script to read portage log items from einfo, ewarn etc, new in the # portage-2.1 series. # # Author: Donnie Berkholz # Updated by: Uwe Klosa # Set ELOGDIR ELOGDIR=$(portageq envvar PORT_LOGDIR)/elog # Set up select prompt PS3="Choice? " select_loop() { ANY_FILES=$(/usr/bin/find . -type f) ANY_FILES=$(echo ${ANY_FILES} | /bin/sed -e "s:\./::g") if [[ -z ${ANY_FILES} ]]; then echo "No log items to read" break fi echo echo "This is a list of portage log items. Choose a number to view that file or type q to quit." echo # Pick which file to read select FILE in ${ANY_FILES}; do case ${REPLY} in q) echo "Quitting" QUIT="yes" break ;; *) /usr/bin/less ${FILE} read -p "Delete file? [y/N] " DELETE case ${DELETE} in q) echo "Quitting" QUIT="yes" break ;; y|Y) /usr/bin/rm -f ${FILE} SUCCESS=$? if [[ ${SUCCESS} = 0 ]]; then echo "Deleted ${FILE}" else echo "Unable to delete ${FILE}" fi ;; # Empty string defaults to N (save file) n|N|"") echo "Saving ${FILE}" ;; *) echo "Invalid response. Saving ${FILE}" ;; esac ;; esac break done } pushd ${ELOGDIR} > /dev/null until [[ -n ${QUIT} ]]; do select_loop done popd > /dev/null