#! /usr/bin/perl use autodie; use JSON; use Data::Dumper; my $NOW = time; my ($dir) = @ARGV; my $j = []; my $seq = 0; opendir my $dh, $dir; FILE: while (my $f = readdir $dh) { next if $f eq "." || $f eq ".."; next unless $f =~ /\.css$/; (my $name = $f) =~ s/\.css$//; my @s = (); my $s = {}; my $c = ""; open my $fh, "<", "$dir/$f"; while (<$fh>) { if (m{/\* -\*-css-\*- \*/}) { next; } elsif (m{/\*\@END\*/}) { $s->{code} = $c; push @s, $s; $s = {}; $c = ""; } elsif (m{/\*\@ \s* ([^:]+) \s* : \s* ( | \S | \S .* \S) \s* \*/}x) { $s->{$1} = [split /\s*,\s*/, $2]; } else { $c .= $_; } } push @$j, { enabled => JSON::true, updateUrl => undef, md5Url => undef, url => undef, originalMd5 => undef, installDate => $NOW, name => $name, id => ++$seq, sections => \@s }; } print encode_json($j), "\n";