From b61b58ce2c1371d6f904f108fa7feed3abfbe5c7 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Wed, 8 Apr 2026 13:18:14 +0900 Subject: * MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated-commit-by: dots Signed-off-by: Robert Günzler --- bin/genup | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 bin/genup (limited to 'bin/genup') diff --git a/bin/genup b/bin/genup new file mode 100755 index 0000000..c759a10 --- /dev/null +++ b/bin/genup @@ -0,0 +1,91 @@ +#!/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 -- cgit 1.4.1