X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/f98cea83b0bf1deb7ce54abe13d16d7e4fdd91ab..803fc2946b1c6a3b876cabea90ebac62ca6e55a9:/tools/mktermcol-xcolor diff --git a/tools/mktermcol-xcolor b/tools/mktermcol-xcolor index 59c4a25..615bff2 100755 --- a/tools/mktermcol-xcolor +++ b/tools/mktermcol-xcolor @@ -1,23 +1,29 @@ #!/usr/bin/env perl use 5.010; -use Shiar_Sheet::Colour '1.05'; +use Shiar_Sheet::Colour 1.05; say 'use strict;'; say '+{'; my @names; -for my $path (glob 'data/xcolors/themes/*') { - open my $theme, '<', $path; +for my $path (@ARGV) { + open my $theme, '<', $path or do { + warn "could not open $path: $!\n"; + next; + }; (my $name = $path) =~ s{.*/}{}; # basename - my @pal; + my (%pal, @pal); while (readline $theme) { - m{ color(\d+) \h* : \h* ( \#(\S+) | rgb:(\S+) ) }x or next; - my ($idx, $val) = ($1, uc $+); - $idx < 16 or next; + m{ + (?: (foreground | background) | color(\d+) ) \h* : \h* + (?: \#(\S+) | rgb:(\S+) ) + }x or next; + my ($name, $idx, $val) = ($1, $2, uc $+); + $name or $idx < 16 or next; $val =~ s/[^0-9A-F]//g; - $pal[$idx] = $val; + ($name ? $pal{$name} : $pal[$idx]) = $val; } my $huesum = 0; @@ -38,6 +44,7 @@ for my $path (glob 'data/xcolors/themes/*') { say qq(\ttitle => '$name',); say qq(\tparent => 'cga',); say qq(\tlist => [qw(@pal)],); + say qq(\t$_ => '$pal{$_}',) for keys %pal; say qq(},); push @names, $name; }