Bug#821096: (no subject)
to make it prompt you to select "keep current|merge|override"
when the target wml file exists
first some lines of "make_wml" subroutine
sub make_wml{
$moreinfo = read_old_wml($wml, $moreinfo) if (-f $wml);
return if($moreinfo eq "KEEP");
open WML, ">", "$wml";
new subroutine:
sub read_old_wml{
my $w = shift;
my $n = shift;
return unless (-f $w);
open (WML, "<", $w) or return;
my ($flag, $o);
while (my $c=<WML>){
last if((substr($c,0,20) eq '<p>For the oldstable')
||(substr($c,0,17) eq '<p>For the stable')
||(substr($c,0,18) eq '<p>For the testing')
||(substr($c,0,19) eq '<p>For the unstable'));
$o .= $c if($flag);
$flag=1 if(substr($c,0,21) eq '<define-tag moreinfo>');
}
close WML;
print "$w already exists!\n";
print "current wml file has no contents. will be overridden.\n" if(!$o);
print "current wml file has following contents:\n\t" if($o);
print $o =~ s/\n/\n\t/rg if($o);
print "\n\tchoices are: keep current[K], merge[M], override[O].\n" if($o);
print "\t(defaults to 'keep current', do nothing.)\n" if($o);
my $s;
my $e=<STDIN>;
chomp $e;
$s = 1 if ($e eq "O");
$s = 2 if ($e eq "M");
return "KEEP" if(!$s);
return $n if ($s == 1);
# merge old description and new package versions below
my $p = index($n, "\n\n<p>For the");
my $n2 = substr($n,$p);
$n = substr($n,0,$p);
print "\nn:$n\n";
$p = index($o, "\n\n<p>For the");
$o = substr($o,0,$p);
return "$n\n\n<p>For reference, the original advisory text follows.</p>\n\n$o$n2";
}
--
victory
no need to CC me :-)
Reply to: