App-EUMM-Migrate
view release on metacpan or search on metacpan
eumm-migrate.pl view on Meta::CPAN
$str=~s/\}[\x0A\x0D]+\s*$//s;
}
print $out <<'EOT';
use strict;
use Module::Build;
#created by eumm-migrate.pl
EOT
print $out $prompts_str;
print $out <<'EOT';
my $build = Module::Build->new(
EOT
print $out $str;
print $out <<'EOT';
);
$build->create_build_script();
EOT
}
package main;
do './Makefile.PL';
die if $@;
package Module::Install::Repository;
#by Tatsuhiko Miyagawa
#See Module::Install::Repository for copyright
sub _execute {
my ($command) = @_;
`$command`;
}
sub _find_repo {
my ($execute) = @_;
if (-e ".git") {
# TODO support remote besides 'origin'?
if ($execute->('git remote show -n origin') =~ /URL: (.*)$/m) {
# XXX Make it public clone URL, but this only works with github
my $git_url = $1;
$git_url =~ s![\w\-]+\@([^:]+):!git://$1/!;
return $git_url;
} elsif ($execute->('git svn info') =~ /URL: (.*)$/m) {
return $1;
}
} elsif (-e ".svn") {
if (`svn info` =~ /URL: (.*)$/m) {
return $1;
}
} elsif (-e "_darcs") {
# defaultrepo is better, but that is more likely to be ssh, not http
if (my $query_repo = `darcs query repo`) {
if ($query_repo =~ m!Default Remote: (http://.+)!) {
return $1;
}
}
open my $handle, '<', '_darcs/prefs/repos' or return;
while (<$handle>) {
chomp;
return $_ if m!^http://!;
}
} elsif (-e ".hg") {
if ($execute->('hg paths') =~ /default = (.*)$/m) {
my $mercurial_url = $1;
$mercurial_url =~ s!^ssh://hg\@(bitbucket\.org/)!https://$1!;
return $mercurial_url;
}
} elsif (-e "$ENV{HOME}/.svk") {
# Is there an explicit way to check if it's an svk checkout?
my $svk_info = `svk info` or return;
SVK_INFO: {
if ($svk_info =~ /Mirrored From: (.*), Rev\./) {
return $1;
}
if ($svk_info =~ m!Merged From: (/mirror/.*), Rev\.!) {
$svk_info = `svk info /$1` or return;
redo SVK_INFO;
}
}
return;
}
}
1;
( run in 1.786 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )