You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/klipper/klipper-1-2.pl

64 lines
1.7 KiB

#!/usr/bin/perl
my ($section, %data);
#read in all the data, split it up into hashes. Thanks again to malte for much input
while (<>) {
if (/\[(.*)\]/) {
$sections{$section} = {%data} if $section;
$section = $1;
undef %data;
next;
}
$data{$1} = $2 if /^([^=]*)=(.*)$/;
}
$sections{$section} = {%data} if $section;
# not used up to now
# $version = $sections{'General'}->{'Version'};
# if "Action description" is not available, we have a new, fresh configuration
# without any need for conversion.
if ( ! $sections{'Action_0'}->{'Action description'} ) {
exit;
}
$numActions = $sections{'General'}->{'Number of Actions'};
for my $i (0..($numActions - 1)) {
my $actionGroup = "Action_$i";
my $numCommands = $sections{$actionGroup}->{'Number of commands'};
print "[$actionGroup]\n";
# rename some keys
print "Description=$sections{$actionGroup}->{'Action description'}\n";
print "Regexp=$sections{$actionGroup}->{'Action regexp'}\n";
print "Number of commands=$numCommands\n";
# move the command entries from "Action_x" to "Action_x/Command_y"
for my $k (0..($numCommands - 1)) {
my $command = "Command_$k";
my $commandGroup = "$actionGroup/$command";
print "\n[$commandGroup]\n";
my $value = $sections{$actionGroup}->{"$command: commandline"};
print "Commandline=$value\n";
$value = $sections{$actionGroup}->{"$command: description"};
print "Description=$value\n";
$value = $sections{$actionGroup}->{"$command: enabled"};
print "Enabled=$value\n";
}
print "\n";
}
&copySection( "General" );
&copySection( "Global Keys" );
sub copySection()
{
my ($group) = @_;
print "\n[$group]\n";
while (($key,$value) = each(%{$sections{$group}})) {
print "$key=$value\n";
}
}