#!/bin/bash EMERGE_OPT=$1 equery="equery -C -q" echo "Finding installed Java packages..." #for pattern in ${IGNORE_PACKAGES}; do # #done JAVA_PACKAGES=$( (${equery} depends virtual/jre; ${equery} depends virtual/jdk) | sort | uniq | grep -v -e mozilla- -e openoffice -e gecko-sdk) FIXED_PACKAGES="" for package in ${JAVA_PACKAGES}; do fixed_package="=${package}" FIXED_PACKAGES="${FIXED_PACKAGES} ${fixed_package}" done echo "Determining which Java packages are in the world file..." WORLD=/var/lib/portage/world WORLD_PACKAGES="" for package in ${JAVA_PACKAGES}; do echo "Adjusting '${package}'...." # Pull of the category category=${package%%/*} echo "Category: ${category}" # Pull of the package name name=${package##*/} # Strip off the version name=${name%%-[0123456789]*} # you'd think bash would know \d... echo "Name: ${name}" package="${category}/${name}" echo "Checking if ${package} is in world..." grep ${package} ${WORLD} if [[ $? == 0 ]]; then echo "Found ${package} in world file" WORLD_PACKAGES="${WORLD_PACKAGES} ${package}" fi done [[ -n ${DEBUG} ]] && echo "WORLD_PACKAGES: ${WORLD_PACKAGES}" >> java-remerger.debug echo "Removing Java packages..." emerge -C ${EMERGE_OPT} ${FIXED_PACKAGES} echo "Re-emerging Java packages that were in the world..." emerge ${EMERGE_OPT} ${WORLD_PACKAGES} echo "You might want to do a emerge --depclean and revdep-rebuild to make sure everything is sane."