diff options
| author | agriffis <agriffis@gentoo.org> | 2004-04-09 15:31:02 +0000 |
|---|---|---|
| committer | agriffis <agriffis@gentoo.org> | 2004-04-09 15:31:02 +0000 |
| commit | ef3d183d5bfcadc1edfd4c4446606dee8066f2f6 (patch) | |
| tree | bde2de73ef48a2b8ef78225e8acb0be07002fd42 /trunk | |
| parent | 2e5d85ab88f78283ed64f6168f7f9ccbb3b3dec7 (diff) | |
| download | gentoolkit-ef3d183d5bfcadc1edfd4c4446606dee8066f2f6.tar.gz | |
Add ability to modify all keywords via all, ~all, or -all, for example: ekeyword -all ~alpha ia64 blah.ebuild
svn path=/; revision=101
Diffstat (limited to 'trunk')
| -rw-r--r-- | trunk/src/ekeyword/ChangeLog | 4 | ||||
| -rw-r--r-- | trunk/src/ekeyword/ekeyword | 19 |
2 files changed, 21 insertions, 2 deletions
diff --git a/trunk/src/ekeyword/ChangeLog b/trunk/src/ekeyword/ChangeLog index b3c4cff..3ab0d56 100644 --- a/trunk/src/ekeyword/ChangeLog +++ b/trunk/src/ekeyword/ChangeLog @@ -1,3 +1,7 @@ +09 Apr 2004 Aron Griffis <agriffis@gentoo.org> + * Add ability to modify all keywords via all, ~all, or -all, for + example: ekeyword -all ~alpha ia64 blah.ebuild + 31 Mar 2004 Aron Griffis <agriffis@gentoo.org> * Fix bug 28426 with patch from Mr_Bones_ to keep ekeyword from confusing ppc and ppc64 diff --git a/trunk/src/ekeyword/ekeyword b/trunk/src/ekeyword/ekeyword index be9cd64..4845c38 100644 --- a/trunk/src/ekeyword/ekeyword +++ b/trunk/src/ekeyword/ekeyword @@ -16,7 +16,7 @@ my ($kw_re) = '^[-~]?\w+$'; # make sure the cmdline consists of keywords and ebuilds unless (@ARGV > 1 && $ARGV[0] =~ /$kw_re/o) { - die "syntax: ekeyword { arch | ~arch | -arch } ebuild...\n" + die "syntax: ekeyword { arch | ~[arch] | -[arch] } ebuild...\n" } for my $a (@ARGV) { next if $a =~ /$kw_re/o; # keyword @@ -38,7 +38,22 @@ for my $f (@ARGV) { /^KEYWORDS/ or print, next; for my $k (@kw) { (my $arch = $k) =~ s/^[-~]//; - s/[-~]?$arch\b/$k/ || s/(.*?['"].*?)\s*(?=['"])/$1 $k/; + if ($arch eq 'all') { + # remove "all" so that only leader is left (blank, ~ or -) + $k =~ s/all//; + + # extract the quoted section from KEYWORDS + (my $quoted = $_) =~ s/^.*["'](.*?)["'].*/$1/s; + + # modify every keyword in the list + $quoted =~ s/(^|\s)[-~]?(?=\w)/$1$k/g; + + # re-insert to KEYWORDS + s/(["']).*?["']/$1$quoted$1/; + } else { + # modify just one keyword + s/[-~]?$arch\b/$k/ || s/(.*?['"].*?)\s*(?=['"])/$1 $k/; + } } print $_, <I> or die "Can't write $f.new: $!\n"; } |
