App-mkpkgconfig
view release on metacpan or search on metacpan
utils/packit view on Meta::CPAN
#!/bin/bash
install () {
cpm install -L packer Module::CoreList
# target latest perl to get modules evicted from core
# so can run on latest perl
local CPM_OPTS=(
--without-test \
--target-perl=5.32.0
)
# uses --pp directly; can't get that into PERL_MB_OPT
cpm install "${CPM_OPTS[@]}" Params::Validate
CPM_OPTS+=( --pureperl-only )
cpm install "${CPM_OPTS[@]}"
if (( ${#EXTRAS[*]} )); then
cpm install "${CPM_OPTS[@]}" "${EXTRAS[@]}"
fi
}
cpm () {
local exe=packer/bin/cpm
if [ ! -x $exe ]; then
curl -fsSL --compressed https://git.io/cpm -o $exe
chmod +x $exe
fi
unset -f cpm
cpm "$@"
}
fatpack-simple () {
if [ ! -f $PWD/packer/bin/fatpack-simple ]; then
cpm install -L packer App::FatPacker::Simple
fi
unset -f fatpack-simple
fatpack-simple "$@"
}
pack () {
local exclude=(
Class::Inspector
CPAN::Meta
CPAN::Meta::Check
Capture::Tiny
Dist::CheckConflicts
Module::Build
Sub::Info
Test2::Suite
Test::Builder
Test::ClassAPI
Test::Deep
Test::FailWarnings
Test::Fatal
Test::Needs
Test::Requires
Test::Tester
Test::Warnings
)
exclude=$(IFS=,; echo "${exclude[*]}")
fatpack-simple \
--exclude $exclude \
--dir $PWD/local,$DIR/lib \
-o $DIR/$EXE $DIR/script/$EXE |& tee pack.log
perl -i.bak -pe 's{/usr/bin/perl}{/usr/bin/env perl}' $DIR/$EXE
rm -f $DIR/$EXE.bak
chmod +x $DIR/$EXE
}
all () {
install
pack
}
DIR=./
USEPERL=$(plenv version)
while getopts d:p: arg ; do
case $arg in
d)
DIR=$OPTARG
;;
p)
USEPERL=$OPTARG
;;
esac
done
shift $(( OPTIND - 1 ))
mkdir -p packer/bin
EXE=mkpkgconfig
export PERL_ONLY=1
PATH="$HOME/.plenv/bin:$PATH"
eval "$(plenv init -)"
unset PERL5LIB
plenv shell $USEPERL
eval $(perl -V:archname)
PATH=$PWD/packer/bin:${PATH}
export PERL5LIB=$PWD/packer/lib/perl5${PERL5LIB:+:$PERL5LIB}
EXTRAS=( Devel::GlobalDestruction )
eval "$@"
( run in 0.704 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )