| #!/bin/bash |
| # |
| # This script is intended to be used after tagging the repository and updating |
| # the version files for a release. It will create a CPAN archive. Run this |
| # from inside a docker image like ubuntu-focal. |
| # |
| |
| set -e |
| |
| rm -f MANIFEST |
| rm -rf Thrift-* |
| |
| # setup cpan without a prompt |
| echo | cpan |
| cpan install HTTP::Date Log::Log4perl |
| cpan install CPAN |
| cpan install CPAN::Meta ExtUtils::MakeMaker JSON::PP |
| # cpan install Module::Signature |
| |
| perl Makefile.PL |
| rm MYMETA.yml |
| make manifest |
| make dist |
| |
| # |
| # We unpack the archive so we can add version metadata for CPAN |
| # so that it properly indexes Thrift and remove unnecessary files. |
| # |
| |
| echo '-----------------------------------------------------------' |
| set -x |
| |
| DISTFILE=$(ls Thrift*.gz) |
| NEWFILE=${DISTFILE/t-v/t-} |
| if [[ "$DISTFILE" != "$NEWFILE" ]]; then |
| mv $DISTFILE $NEWFILE |
| DISTFILE="$NEWFILE" |
| fi |
| tar xzf $DISTFILE |
| rm $DISTFILE |
| DISTDIR=$(ls -d Thrift*) |
| # cpan doesn't like "Thrift-v0.nn.0 as a directory name |
| # needs to be Thrift-0.nn.0 |
| NEWDIR=${DISTDIR/t-v/t-} |
| if [[ "$DISTDIR" != "$NEWDIR" ]]; then |
| mv $DISTDIR $NEWDIR |
| DISTDIR="$NEWDIR" |
| fi |
| cd $DISTDIR |
| cp -p ../Makefile.PL . |
| cp -pr ../gen-perl . |
| cp -pr ../gen-perl2 . |
| perl ../tools/FixupDist.pl |
| cd .. |
| tar cvzf $DISTFILE $DISTDIR |
| rm -r $DISTDIR |