#!/bin/sh set -e step() { echo -e '\e[1;34m==========' "$@" '==========\e[0m' } run() { "$@" || { echo -ne "\e[1;31mContinue?\e[0m " read } } ################################################################################# if [ "$(equery -q l -p sys-apps/portage | grep -vE sys-apps/portage-9999 | sort -Vr | head -1)" != "$(equery -q l sys-apps/portage)" ]; then step "Update portage" run emerge -1 sys-apps/portage fi step "Update packages" run emerge -auDU --with-bdeps=y --keep-going @world "$@" step "Rebuil packages" run revdep-rebuild -- "$@" step "Rebuild preserved ones" run emerge --keep-going=y @preserved-rebuild step "Clean packages" run emerge --depclean -a "$@" step "Clean distfiles" run eclean distfiles if eselect modules has fontconfig; then step "Enable all fonts" enable_all_fonts() { eselect fontconfig list | \ awk 'NR > 1 && $3 != "*" { print substr($1,2,length($1)-2) }' | \ while read -r font; do eselect fontconfig enable "$font" done } enable_all_fonts fi