#!/bin/sh . /lib/gentoo/functions.sh set -e [ -n "${DEBUG:-}" ] && set -x if [ "$UID" != 0 ]; then eerror "need to be root" exit 1 fi # builtin emerge args eargs= # order: # sync -> portage update -> update -> update unstable -> clean -> flatpak if test $# -eq 0; then dosync=1 doupdate=1 dolive=1 doclean=1 doflatpak=1 fi printonly= while getopts spulcfKXBh opt; do case ${opt} in s) dosync=1 ;; u) doupdate=1 ;; l) dolive=1 ;; c) doclean=1 ;; f) doflatpak=1 ;; B) eargs="$eargs -X www-client/librewolf" ;; K) eargs="$eargs -X sys-kernel/* -X virtual/dist-kernel" ;; X) printonly=1 ;; h | ?) printf "usage: %s [-hsulcfBKX]\n" "$(basename "$0")" printf "\n" exit 2 ;; esac done shift $((OPTIND - 1)) _() { [ -n "$printonly" ] && printf "%s\n" "$*" && return eval $* } ebegin syncing [ -n "${dosync:-}" ] && _ emerge --sync && eend ebegin updating portage emerge --pretend --quiet --update sys-apps/portage | grep -qE '\[.*U.*\]' && _ emerge -a --oneshot --getbinpkg sys-apps/portage && eend ebegin updating @world [ -n "${doupdate:-}" ] && _ emerge -ag --update --deep --newuse --keep-going "$@" $eargs @world && eend # --binpkg-respect-use=y # _ revdep-ebuild -- "$@" $eargs && ebegin updating unstable [ -n "${dolive:-}" ] && _ emerge -a1 --keep-going @live-rebuild && eend ebegin depcleaning [ -n "${doclean:-}" ] && _ emerge -a --depclean "$@" && _ eclean --deep packages && _ eclean --deep distfiles && eend ebegin updating @preserved-rebuild [ -n "${doupdate:-}" ] && _ emerge -a --keep-going "$@" $eargs @preserved-rebuild && eend ebegin updating flatpaks [ -x "$(command -v flatpak)" ] && [ -n "${doflatpak:-}" ] && _ flatpak upgrade && _ flatpak uninstall --unused && _ flatpak repair && eend