summary refs log tree commit diff
path: root/bin/genup
diff options
context:
space:
mode:
Diffstat (limited to 'bin/genup')
-rwxr-xr-xbin/genup91
1 files changed, 91 insertions, 0 deletions
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