cros_workon: allow a stop on a dead package

Previously, you could not stop working on a package if its ebuild had
been removed. This fixes this issue by skipping canonicalization if the
package name exactly matches a name in the workon file.

BUG=11214
TEST=See below.

(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic list
sys-kernel/chromeos-kernel
(cros-chroot) msb@msb ~/trunk/src/scripts $ echo "=foo/bar-9999" >> ~/trunk/.config/cros_workon/x86-generic
(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic list
sys-kernel/chromeos-kernel
foo/bar
(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic stop foo/bar
!!! No packages matching 'foo/bar'
WARNING: error looking up package foo/bar
ERROR  : Error parsing package list

*** I made changes to cros_workon here

(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic list
sys-kernel/chromeos-kernel
foo/bar
(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic stop foo/bar
INFO   : Stopped working on 'foo/bar' for 'x86-generic'
(cros-chroot) msb@msb ~/trunk/src/scripts $ ./cros_workon --board x86-generic list
sys-kernel/chromeos-kernel

Change-Id: Id5cbd2b145b4d0fca96cfb245f1ac99e0b3cbdf3

Review URL: http://codereview.chromium.org/6379006
This commit is contained in:
Mandeep Singh Baines 2011-01-24 14:04:35 -08:00
parent 26998d4c6e
commit 07f92099a4

View File

@ -103,6 +103,11 @@ canonicalize_name () {
local pkgfile local pkgfile
local pkgname local pkgname
if grep -qx "=$1-9999" "${WORKON_FILE}" ; then
echo $1
return 0
fi
if ! pkgfile=$(ACCEPT_KEYWORDS="~${BOARD_KEYWORD}" ${EQUERYCMD} which $1); then if ! pkgfile=$(ACCEPT_KEYWORDS="~${BOARD_KEYWORD}" ${EQUERYCMD} which $1); then
warn "error looking up package $1" 1>&2 warn "error looking up package $1" 1>&2
return 1 return 1