diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-02-06 22:10:10 +0100 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-02-06 22:10:10 +0100 |
commit | e9b6f0f44f231d53758033dd319abae100736ff6 (patch) | |
tree | a60863f4cfcd058b06941cc483cc2f7c897811ff /bootstrap.pl | |
parent | 35aec8f48ff9ba4fb64e0f2d85dc464f45aea055 (diff) | |
download | acmeman-e9b6f0f44f231d53758033dd319abae100736ff6.tar.gz acmeman-e9b6f0f44f231d53758033dd319abae100736ff6.tar.bz2 |
Use ExtUtils::AutoInstall
* Makefile.PL: Rewrite.
* bootstrap.pl: New file.
Diffstat (limited to 'bootstrap.pl')
-rw-r--r-- | bootstrap.pl | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/bootstrap.pl b/bootstrap.pl new file mode 100644 index 0000000..90db16a --- /dev/null +++ b/bootstrap.pl @@ -0,0 +1,61 @@ +#! /usr/bin/perl +# This file is part of acmeman. +# Copyright (C) 2014, 2017 Sergey Poznyakoff <gray@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +use strict; +use CPAN; +use Cwd qw(getcwd); +use File::Path qw(mkpath); + +#### +my $incdir = "inc/ExtUtils"; +my $topdir = getcwd; + +my $modname = "ExtUtils::AutoInstall"; + +my $mod = CPAN::Shell->expandany($modname) or die "Can't expand $modname"; +my $file = $mod->inst_file; +my $dir; + +if (defined($file)) { + print "$modname installed at $file\n"; + if (-f $file) { + $file =~ s#/[^/]+\.pm$##; + if (-d $file) { + $dir = $file; + } else { + die "Can't find $modname directory"; + } + } +} else { + print "Getting $modname\n"; + my $distro = $mod->get or die "Can't get distribution for $modname"; + $dir = $distro->dir; +} + +$file = "$dir/$incdir/AutoInstall.pm"; +$file = "$dir/AutoInstall.pm" unless (-f $file); +-f $file or die "$file not found"; + +use autodie; +chdir $topdir; +mkpath $incdir unless -d $incdir; +chdir $incdir; +no autodie; +unlink "AutoInstall.pm"; +use autodie; +symlink $file, "AutoInstall.pm"; + |