File: renum.pl

package info (click to toggle)
libgraph-perl 1%3A0.96-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,316 kB
  • ctags: 938
  • sloc: perl: 6,094; sh: 8; makefile: 2
file content (57 lines) | stat: -rw-r--r-- 1,382 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
my $MANIFEST;
my %MANIFEST;
my @MANIFEST;
if (open(MANIFEST, "MANIFEST")) {
    while (<MANIFEST>) {
	unless (m:^t/(\d+(\.\d+)?_+.+):) {
	    chomp;
	    push @MANIFEST, $_;
	}
    }
    close(MANIFEST);
} else {
    die "$0: opening 'MANIFEST' failed: $!\n";
}
die "$0: chdir 't' failed: $!\n" unless chdir("t");
my @t = sort { $a <=> $b } glob("[0-9]*.t");
my @r;
for my $i (0..$#t) {
    my $u = $t[$i];
    if ($u =~ s/^\d+(\.\d+)?_+//) {
	$u = sprintf "%02g_$u", $i;
	if ($u ne $t[$i]) {
	    my $r = [ $t[$i], $u ];
	    if (-e $r->[1]) {
		die "$0: renaming $t[$i] - $r->[1] already exists, whole rename aborted.\n";
	    } else {
		push @r, $r;
	    }
	}
	$MANIFEST{"t/$t[$i]"} = "t/$u\n";
    }
}
my $n = 0;
for my $r (@r) {
    my ($old, $new) = @$r;
    if (rename($old, $new)) {
	$n++;
    } else {
	warn "$0: rename $old $new failed: $!\n";
    }
}
printf "%s t/*.t file%s renamed.\n", $n ? $n : 'No', $n == 1 ? '' : 's';
push @MANIFEST, keys %MANIFEST;
if (open(MANINEW, ">MANIFEST.new")) {
    for my $mani (sort @MANIFEST) {
	print MANINEW "$mani\n"
	    or die "$0: MANIFEST.new print: $!\n";
    }
    close(MANINEW)
	or die "$0: MANIFEST.new print: $!\n";
    rename("MANIFEST.new", "../MANIFEST")
	or warn "$0: rename MANIFEST.new ../MANIFEST: $!\n";
} else {
    die "$0: MANIFEST.new create: $!\n";
}
printf "MANIFEST %supdated.\n", $n ? "" : "not ";
exit(0);