diff options
author | Luke Bratch <luke@bratch.co.uk> | 2025-04-18 13:51:35 +0200 |
---|---|---|
committer | Luke Bratch <luke@bratch.co.uk> | 2025-04-18 13:51:35 +0200 |
commit | 5f1552f0c21aa7e8b38b1c6af42762e8b2c6e338 (patch) | |
tree | ed68915484571cc9e9e06be4ce0fc388416e574e | |
parent | 45a3e5eda14985a3f5dc045f143522747747f8de (diff) |
Add --exclude and pass the next argument to emerge --exclude for @world and -9999 updates.
-rwxr-xr-x | portage-update.sh | 12 |
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 |