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.
63 lines
1.9 KiB
63 lines
1.9 KiB
#!/usr/bin/perl |
|
|
|
my (%data); |
|
my $section = ""; |
|
|
|
sub process { |
|
# delete obsolete keys: |
|
print "# DELETE [$section]UseSignatureFile\n"; |
|
|
|
# now determine the type of signature: |
|
if ( $data{'usefile'} =~ /false/i ) { |
|
# type = inline |
|
if ( $data{'inline'} ne "" ) { |
|
print "[$section]\nSignature Type=inline\n"; |
|
} else { |
|
print "[$section]\nSignature Type=disabled\n"; |
|
print "# DELETE [$section]Inline Signature\n"; |
|
} |
|
print "# DELETE [$section]Signature File\n"; |
|
} else { |
|
# type = file or command |
|
if ( $data{'file'} =~ /\|$/ ) { |
|
# a trailing pipe means: |
|
# type = command |
|
chop $data{'file'}; |
|
print "[$section]\nSignature Type=command\n"; |
|
print "[$section]\nSignature Command=", $data{'file'}, "\n"; |
|
print "# DELETE [$section]Signature File\n"; |
|
print "# DELETE [$section]Inline Signature\n"; |
|
} elsif ( $data{'file'} eq "" ) { |
|
# empty filename means: |
|
# type = disabled |
|
print "[$section]\nSignature Type=disabled\n"; |
|
print "# DELETE [$section]Inline Signature\n"; |
|
print "# DELETE [$section]Signature File\n"; |
|
} else { |
|
# type = file |
|
print "[$section]\nSignature Type=file\n"; |
|
print "# DELETE [$section]Inline Signature\n"; |
|
} |
|
} |
|
} |
|
|
|
#loop over all lines to find Identity sections: |
|
while (<>) { |
|
if ( /\[(Identity[^]]*)\]/ ) { |
|
# new group means that we have to process the old group: |
|
if ( $section ne "" ) { process(); } |
|
$section = $1; |
|
%data = (); |
|
next; |
|
} |
|
chomp; |
|
# We need to prevent this script from begin run twice |
|
# since it would set all signatures to 'disabled' then. |
|
# Presence of the Signature Type key is the best indicator. |
|
/^Signature Type/ and exit; |
|
/^Inline Signature=(.*)$/ and $data{'inline'} = $1; |
|
/^Signature File=(.*)$/ and $data{'file'} = $1; |
|
/^UseSignatureFile=(.*)$/ and $data{'usefile'} = $1; |
|
} |
|
#and don't forget to preocess the last group ;-) |
|
if ( $section ne "" ) { process(); }
|
|
|