| Current Path : /usr/share/ifupdown/ |
| Current File : //usr/share/ifupdown/upgrade-from-0.5.x.pl |
#!/usr/bin/perl -w
use strict;
my %doneifaces = ();
my @orig = (); # original interfaces file
my $line;
while($line = <STDIN>) {
if ($line =~ m/^\s*#/) {
push @orig, $line;
next;
}
my $tmp;
while ($line =~ m/\\\n$/ and $tmp = <>) {
$line .= $tmp;
}
push @orig, $line;
}
my $out = "";
my $block = "";
my $auto = "";
for my $x (@orig) {
my $y = $x;
$y =~ s/^\s*//s;
$y =~ s/\\\n//sg;
$y =~ s/\s*$//s;
if ($y =~ m/^scheme\b/) {
print STDERR "Schemes cannot be automatically converted\n";
exit(1);
}
if ($y =~ m/^auto\b/) {
print STDERR "File seems to already be converted\n";
exit(1);
}
if ($y =~ m/^iface\b/s) {
$out .= $auto . $block;
$block = $x;
if ($y =~ m/^iface\s+(\S+)/s && ! $doneifaces{$1}++ ) {
$auto = "# automatically added when upgrading\n";
$auto .= "auto $1\n";
} else {
$auto = "";
}
next;
}
if ($y =~ m/^noauto/) {
$auto = "";
my $spaces = $x;
$spaces =~ s/\S.*$//s;
$block .= $spaces . "# noauto (removed on upgrade)\n";
next;
}
$block .= $x;
}
$out .= $auto . $block;
print $out;