mirror of
https://github.com/git/git
synced 2024-10-30 04:01:21 +00:00
c102f4cf72
git-svn.perl is very long (around 6500 lines) and although it is nicely split into modules, some new readers do not even notice --- it is too distracting to see all this functionality collected in a single file. Splitting it into multiple files would make it easier for people to read individual modules straight through and to experiment with components separately. Let's start with Git::SVN::Prompt. For simplicity, we install this as a module in the standard search path, just like the existing Git and Git::I18N modules. In the process, add a manpage explaining its interface and that it is not likely to be useful for other projects to avoid confusion. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
51 lines
1.3 KiB
Perl
51 lines
1.3 KiB
Perl
use strict;
|
|
use warnings;
|
|
use ExtUtils::MakeMaker;
|
|
use Getopt::Long;
|
|
|
|
# Sanity: die at first unknown option
|
|
Getopt::Long::Configure qw/ pass_through /;
|
|
|
|
GetOptions("localedir=s" => \my $localedir);
|
|
|
|
sub MY::postamble {
|
|
return <<'MAKE_FRAG';
|
|
instlibdir:
|
|
@echo '$(INSTALLSITELIB)'
|
|
|
|
ifneq (,$(DESTDIR))
|
|
ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10))
|
|
$(error ExtUtils::MakeMaker version "$(MM_VERSION)" is older than 6.11 and so \
|
|
is likely incompatible with the DESTDIR mechanism. Try setting \
|
|
NO_PERL_MAKEMAKER=1 instead)
|
|
endif
|
|
endif
|
|
|
|
MAKE_FRAG
|
|
}
|
|
|
|
my %pm = (
|
|
'Git.pm' => '$(INST_LIBDIR)/Git.pm',
|
|
'Git/I18N.pm' => '$(INST_LIBDIR)/Git/I18N.pm',
|
|
'Git/SVN/Prompt.pm' => '$(INST_LIBDIR)/Git/SVN/Prompt.pm',
|
|
);
|
|
|
|
# We come with our own bundled Error.pm. It's not in the set of default
|
|
# Perl modules so install it if it's not available on the system yet.
|
|
eval { require Error };
|
|
if ($@ || $Error::VERSION < 0.15009) {
|
|
$pm{'private-Error.pm'} = '$(INST_LIBDIR)/Error.pm';
|
|
}
|
|
|
|
# redirect stdout, otherwise the message "Writing perl.mak for Git"
|
|
# disrupts the output for the target 'instlibdir'
|
|
open STDOUT, ">&STDERR";
|
|
|
|
WriteMakefile(
|
|
NAME => 'Git',
|
|
VERSION_FROM => 'Git.pm',
|
|
PM => \%pm,
|
|
PM_FILTER => qq[\$(PERL) -pe "s<\\Q++LOCALEDIR++\\E><$localedir>"],
|
|
MAKEFILE => 'perl.mak',
|
|
INSTALLSITEMAN3DIR => '$(SITEPREFIX)/share/man/man3'
|
|
);
|