weechat-opal/scripts/coloconv.pl

46 lines
1.0 KiB
Perl
Executable File

#!/usr/bin/perl
=pod
Reads plugins.conf from stdin, writes new plugins.conf to stdout, and
writes commands to restore the rest of the config options to stderr
Suggested operation:
cd .weechat
./coloconv.pl < plugins.conf > plugins.conf.new 2> commands
diff plugins.conf plugins.conf.new # to make sure nothing got clobbered
Then in WeeChat:
/exec -o .weechat/commands
=cut
my %profs;
my $desc = 0;
while (<>) {
$desc and print, next;
$_ !~ /^python\.embellish\./ and print, next;
s/^python\.embellish/python.colo/;
$_ !~ /^python\.colo\..*(?:pre|suf)/ and print, next;
$_ eq '[desc]' and ($desc = 1), print, next;
my ($prof, $k, $v) = /^python\.colo\.(.*)(pre|suf) = "(.*)"$/;
$v =~ s/\x02/%b/g;
$v =~ s/\x03/%c/g;
$v =~ s/\x0f/%o/g;
$v =~ s/\x16/%r/g;
$v =~ s/\x1f/%u/g;
if ($k eq 'pre') {
$profs{$prof} = "%0$v%o%0 %s%o%0 ";
} elsif ($k eq 'suf') {
$profs{$prof} .= $v;
}
}
for my $prof (keys %profs) {
print STDERR "/reload\n";
print STDERR "/set plugins.var.python.colo.${prof}fmt $profs{$prof}\n";
}