pandoc/make_osx_package.sh
2013-02-10 13:56:24 -08:00

64 lines
1.7 KiB
Bash
Executable file

#!/bin/sh -e
DIST=osx_package
VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}')
RESOURCES=$DIST/Resources
ROOT=$DIST/pandoc
SCRIPTS=osx-resources
BASE=pandoc-$VERSION
ME=jgm
CODESIGNID="Developer ID Application: John Macfarlane"
PACKAGEMAKER=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
echo Removing old files...
rm -rf $DIST
mkdir -p $RESOURCES
echo Building pandoc...
cabal-dev install-deps
cabal-dev install --reinstall --force-reinstalls --flags="embed_data_files" citeproc-hs
cabal-dev configure --prefix=/usr/local --datasubdir=$BASE --docdir=/usr/local/doc/$BASE
cabal-dev build
cabal-dev copy --destdir=$ROOT
# remove library files
rm -r $ROOT/usr/local/lib
chown -R $ME:staff $DIST
gzip $ROOT/usr/local/share/man/man?/*.*
# cabal gives man pages the wrong permissions
chmod +r $ROOT/usr/local/share/man/man?/*.*
echo Copying license...
dist/build/pandoc/pandoc --data data -t rtf -s COPYING -o $RESOURCES/License.rtf
echo Signing pandoc executable...
codesign --force --sign "$CODESIGNID" $ROOT/usr/local/bin/pandoc
# make sure it's valid... returns nonzero exit code if it isn't:
spctl --assess --type execute $ROOT/usr/local/bin/pandoc
echo Creating OSX package...
sudo $PACKAGEMAKER \
--root $ROOT \
--id net.johnmacfarlane.pandoc \
--resources $RESOURCES \
--version $VERSION \
--no-relocate \
--scripts $SCRIPTS \
--out $BASE.pkg
echo Signing package...
sudo codesign --force --sign "$CODESIGNID" $BASE.pkg
# make sure it's valid...
spctl --assess --type install $BASE.pkg
echo Creating disk image...
sudo hdiutil create "$BASE.dmg" \
-format UDZO -ov \
-volname "pandoc $VERSION" \
-srcfolder $BASE.pkg
sudo hdiutil internet-enable "$BASE.dmg"