|  | #!/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 |