#!/usr/bin/env perl
use 5.010;
+use Shiar_Sheet::Colour '1.05';
+
say 'use strict;';
say '+{';
my @names;
for my $path (glob 'data/xcolors/themes/*') {
open my $theme, '<', $path;
(my $name = $path) =~ s{.*/}{}; # basename
- push @names, $name;
my @pal;
while (readline $theme) {
$pal[$idx] = $val;
}
+ my $huesum = 0;
+ for my $hue (
+ sort map { $_->hue }
+ grep { ($_->hsv)[1] > 32 } # ignore unsaturated
+ map { Shiar_Sheet::Colour->new($_) }
+ @pal
+ ) {
+ state $lasthue;
+ $huesum += abs($lasthue - $hue) > .02 if defined $lasthue;
+ $lasthue = $hue;
+ }
+ $huesum > 3 or next; # require number of significant hue changes
+ #TODO tweak to include good-pants, exclude cheesecake-*
+
say qq("$name" => {);
say qq(\ttitle => '$name',);
say qq(\tparent => 'cga',);
say qq(\tlist => [qw(@pal)],);
say qq(},);
+ push @names, $name;
}
say 'xcolor => [', join(', ', map {"'$_'"} @names), '],';