forked from andk/cpanpm
-
Notifications
You must be signed in to change notification settings - Fork 1
/
cp-to-perl.pl
72 lines (64 loc) · 2.46 KB
/
cp-to-perl.pl
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl
use strict;
use warnings;
use File::Copy qw(cp);
use Term::Prompt;
my $target = shift or die "Usage: $0 targetdirectory";
die "Could not find directory '$target'" unless -d $target;
$target =~ s|/+$||;
# warn "Copying to '$target'\n";
=pod
lib/CPAN/bin/cpan easily interact with CPAN from the command line
lib/CPAN/FirstTime.pm Utility for creating CPAN config files
lib/CPAN/Nox.pm Runs CPAN while avoiding compiled extensions
lib/CPAN/PAUSE2003.pub CPAN public key
lib/CPAN/PAUSE2005.pub CPAN public key
lib/CPAN/SIGNATURE CPAN public key
lib/CPAN/Version.pm Simple math with different flavors of version strings
lib/CPAN.pm Interface to Comprehensive Perl Archive Network
lib/CPAN/t/loadme.t See if CPAN the module works
lib/CPAN/t/mirroredby.t See if CPAN::Mirrored::By works
lib/CPAN/t/Nox.t See if CPAN::Nox works
lib/CPAN/t/vcmp.t See if CPAN the module works
lib/CPAN/t/version.t See if CPAN::Version works
=cut
my $MAP = {
"" => ["lib/CPAN/" => [qw(
SIGNATURE
PAUSE*.pub
)]],
"lib/" => ["lib/" => [qw(
lib/CPAN.pm
lib/CPAN/Debug.pm
lib/CPAN/FirstTime.pm
lib/CPAN/HandleConfig.pm
lib/CPAN/Nox.pm
lib/CPAN/Tarzip.pm
lib/CPAN/Version.pm
)]],
"scripts/" => ["lib/CPAN/bin/" => [qw(
scripts/cpan
)]],
"t/" => ["lib/CPAN/t/" => [qw(
t/[lmNv]*.t
)]], # not signature!
};
my @command;
while (my($here,$v) = each %$MAP) {
my($theredir,$files) = @$v;
for my $file (@$files) {
my $prefix_length = length($here);
die "bad file[$file]" unless substr($file,0,$prefix_length) eq $here;
my @expand_file = glob($file);
for my $efile (@expand_file) {
my @c = $efile;
push @c, sprintf "%s/%s%s", $target, $theredir, substr($efile,$prefix_length);
printf "cp %-21s %s\n", @c;
push @command, \@c;
}
}
}
exit unless prompt("y","Proceed?","","y");
for my $c (@command) {
cp @$c or die "Could not cp @$c";
}