summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Bratch <luke@bratch.co.uk>2025-04-18 13:51:35 +0200
committerLuke Bratch <luke@bratch.co.uk>2025-04-18 13:51:35 +0200
commit5f1552f0c21aa7e8b38b1c6af42762e8b2c6e338 (patch)
treeed68915484571cc9e9e06be4ce0fc388416e574e
parent45a3e5eda14985a3f5dc045f143522747747f8de (diff)
Add --exclude and pass the next argument to emerge --exclude for @world and -9999 updates.
-rwxr-xr-xportage-update.sh12
1 files changed, 8 insertions, 4 deletions
diff --git a/portage-update.sh b/portage-update.sh
index 0330162..7a141a8 100755
--- a/portage-update.sh
+++ b/portage-update.sh
@@ -30,6 +30,10 @@ do
;;
--skip-etc-update) export SKIP_ETC_UPDATE="true" # In case we don't want to do an "etc-update"
;;
+ --exclude) # Followed by a list of packages as a single argument to pass to emerge --exclude for @world and -9999 updates, e.g. --exclude "app-editors/nano media-gfx/blender"
+ export EXCLUDE_LIST="$2"
+ shift
+ ;;
--*) echo "bad argument '$1'" ; exit 1
;;
*) echo "unexpected argument '$1'" ; exit 1
@@ -53,13 +57,13 @@ fi
# Do a @world update, unless skipped
if [ -z ${SKIP_UPDATE+x} ]; then
- echo 'emerge --keep-going -av --update --newuse --deep --with-bdeps=y @world'
- emerge --keep-going -av --update --newuse --deep --with-bdeps=y @world || exit 1
+ echo "emerge --keep-going -av --update --newuse --deep --with-bdeps=y --exclude \"$EXCLUDE_LIST\" @world"
+ emerge --keep-going -av --update --newuse --deep --with-bdeps=y --exclude "$EXCLUDE_LIST" @world || exit 1
# Update -9999 packages since they aren't included in a @world update
pkgs9999=$(find /var/db/pkg/ -mindepth 2 -maxdepth 2 -name '*-9999')
if [ "$pkgs9999" != "" ] ; then
- echo "emerge -av $(find /var/db/pkg/ -mindepth 2 -maxdepth 2 -name '*-9999' | tr '\n' ' ' | sed 's|/var/db/pkg/|=|g')"
- emerge -av $(find /var/db/pkg/ -mindepth 2 -maxdepth 2 -name '*-9999' | tr '\n' ' ' | sed 's|/var/db/pkg/|=|g')
+ echo "emerge -av $(find /var/db/pkg/ -mindepth 2 -maxdepth 2 -name '*-9999' | tr '\n' ' ' | sed 's|/var/db/pkg/|=|g') --exclude \"$EXCLUDE_LIST\""
+ emerge -av $(find /var/db/pkg/ -mindepth 2 -maxdepth 2 -name '*-9999' | tr '\n' ' ' | sed 's|/var/db/pkg/|=|g') --exclude "$EXCLUDE_LIST"
fi
fi