diff options
author | Michael G. Schwern <schwern@pobox.com> | 2012-07-26 16:22:22 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-07-27 22:14:50 +0000 |
commit | c2768fa15234fd7eef7abb52eca2a3abe08e525c (patch) | |
tree | dcc12f007709add0f25a843c8cb18a0f5eb6cb43 /perl | |
parent | ee9be06770223238c6a22430eb874754dd22dfb0 (diff) | |
download | git-c2768fa15234fd7eef7abb52eca2a3abe08e525c.tar.gz git-c2768fa15234fd7eef7abb52eca2a3abe08e525c.tar.xz |
Extract some utilities from git-svn to allow extracting Git::SVN.
Put them in a new module called Git::SVN::Utils. Yeah, not terribly
original and it will be a dumping ground. But its better than having
them in the main git-svn program. At least they can be documented
and tested.
* fatal() is used by many classes.
* Change the $can_compress lexical into a function.
This should be enough to extract Git::SVN.
Signed-off-by: Michael G. Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Diffstat (limited to 'perl')
-rw-r--r-- | perl/Git/SVN/Utils.pm | 59 | ||||
-rw-r--r-- | perl/Makefile | 1 |
2 files changed, 60 insertions, 0 deletions
diff --git a/perl/Git/SVN/Utils.pm b/perl/Git/SVN/Utils.pm new file mode 100644 index 000000000..496006bc7 --- /dev/null +++ b/perl/Git/SVN/Utils.pm @@ -0,0 +1,59 @@ +package Git::SVN::Utils; + +use strict; +use warnings; + +use base qw(Exporter); + +our @EXPORT_OK = qw(fatal can_compress); + + +=head1 NAME + +Git::SVN::Utils - utility functions used across Git::SVN + +=head1 SYNOPSIS + + use Git::SVN::Utils qw(functions to import); + +=head1 DESCRIPTION + +This module contains functions which are useful across many different +parts of Git::SVN. Mostly it's a place to put utility functions +rather than duplicate the code or have classes grabbing at other +classes. + +=head1 FUNCTIONS + +All functions can be imported only on request. + +=head3 fatal + + fatal(@message); + +Display a message and exit with a fatal error code. + +=cut + +# Note: not certain why this is in use instead of die. Probably because +# the exit code of die is 255? Doesn't appear to be used consistently. +sub fatal (@) { print STDERR "@_\n"; exit 1 } + + +=head3 can_compress + + my $can_compress = can_compress; + +Returns true if Compress::Zlib is available, false otherwise. + +=cut + +my $can_compress; +sub can_compress { + return $can_compress if defined $can_compress; + + return $can_compress = eval { require Compress::Zlib; }; +} + + +1; diff --git a/perl/Makefile b/perl/Makefile index 7667c903d..3478103c9 100644 --- a/perl/Makefile +++ b/perl/Makefile @@ -34,6 +34,7 @@ modules += Git/SVN/Fetcher modules += Git/SVN/Editor modules += Git/SVN/Prompt modules += Git/SVN/Ra +modules += Git/SVN/Utils $(makfile): ../GIT-CFLAGS Makefile echo all: private-Error.pm Git.pm Git/I18N.pm > $@ |