allow multiple keywords
authoragriffis <agriffis@gentoo.org>
Mon, 12 Jan 2004 23:54:00 +0000 (23:54 -0000)
committeragriffis <agriffis@gentoo.org>
Mon, 12 Jan 2004 23:54:00 +0000 (23:54 -0000)
svn path=/; revision=63

trunk/src/ekeyword/ChangeLog
trunk/src/ekeyword/ekeyword

index 6cdc2119956dafd5c2d6ec60abba30b6cc8eaac1..20942f268b2d2343504c171a4f9b285068d5d355 100644 (file)
@@ -1,2 +1,5 @@
+2004-01-12 Aron Griffis <agriffis@gentoo.org>
+       * Allow multiple keywords
+
 2004-01-07 Karl Trygve Kalleberg <karltk@gentoo.org>
        * Added Makefile
index f5eb133c8824e6ee0e7f3113c18241bb28285484..420c979fd9017c10feb485015740601e278affb3 100644 (file)
 #   > KEYWORDS="x86 ppc sparc ~alpha"
 
 
-die "syntax: ekeyword { arch | ~arch | -arch } ebuild...\n" unless @ARGV > 1;
+my ($kw_re) = '^[-~]?\w+$';
 
-my $kw = shift @ARGV;
-(my $arch = $kw) =~ s|^[-~]||;
-
-die "$kw doesn't look like a keyword to me\n" unless $arch =~ /^\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" 
+}
+for my $a (@ARGV) {
+    next if $a =~ /$kw_re/o;           # keyword
+    next if $a =~ /^\S+\.ebuild$/;     # ebuild
+    die "I don't understand $a\n";
+}
 
 for my $f (@ARGV) {
+    if ($f =~ /$kw_re/o) {
+       push @kw, $f;
+       next;
+    }
+
     open I, "<$f"       or die "Can't read $f: $!\n";
     open O, ">$f.new"   or die "Can't create $f.new: $!\n";
     select O;
 
     while (<I>) {
-        /^KEYWORDS/ or print, next;
-        s/[-~]?$arch/$kw/ || s/(.*?['"].*?)\s*(?=['"])/$1 $kw/;
-        print $_, <I> or die "Can't write $f.new: $!\n";
+       /^KEYWORDS/ or print, next;
+       for my $k (@kw) {
+           (my $arch = $k) =~ s/^[-~]//;
+           s/[-~]?$arch/$k/ || s/(.*?['"].*?)\s*(?=['"])/$1 $k/;
+       }
+       print $_, <I> or die "Can't write $f.new: $!\n";
     }
 
     close I;