#!/bin/sh case $(basename $0) in use.sh) TARGET="package.use" ;; mask.sh) TARGET="package.mask" ;; unmask.sh) TARGET="package.unmask" ;; esac GREPLINE=$(fgrep -n "$1" /etc/portage/${TARGET}) if [ -n "$GREPLINE" ]; then LNUM=$(echo $GREPLINE | awk -F : '{print $1}') echo -en "line $LNUM in ${TARGET} already contains $1.\nDo you want to edit the file? [y|n]" while read i do case $i in Y|y) case "${EDITOR}x" in "x") echo "No \$EDITOR variable set. Using vi." vi /etc/portage/${TARGET} ;; "*vi*x") $EDITOR +${LNUM} /etc/portage/${TARGET} ;; *) $EDITOR /etc/portage/${TARGET} ;; esac break ;; N|n) break ;; *) echo -n "[y|n]" continue ;; esac done else if [ -w /etc/portage/${TARGET} ]; then echo "putting $@ >> /etc/portage/${TARGET}" echo $@ >> /etc/portage/${TARGET} else echo "${TARGET} does not exist or is not writable for this user." exit 1 fi fi echo "done." exit 0