pandoc/osx/make_osx_package.sh

88 lines
2.4 KiB
Bash
Raw Normal View History

#!/bin/bash -e
2011-07-28 20:41:00 +02:00
DIST=`pwd`/osx_package
2013-09-15 02:32:54 +02:00
SANDBOX=`pwd`/.cabal-sandbox
2011-07-28 20:41:00 +02:00
VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}')
RESOURCES=$DIST/Resources
ROOT=$DIST/pandoc
2013-09-21 02:37:19 +02:00
DEST=$ROOT/usr/local
SCRIPTS=osx-resources
2011-07-28 20:41:00 +02:00
BASE=pandoc-$VERSION
ME=$(whoami)
CODESIGNID="Developer ID Application: John Macfarlane"
PACKAGEMAKER=/Applications/PackageMaker.app/Contents/MacOS/PackageMaker
EXES="pandoc pandoc-citeproc"
2011-07-28 20:41:00 +02:00
read -s -p "sudo password: " PASSWORD
echo $PASSWORD | sudo -S echo "Password valid, continuing."
2011-07-28 20:41:00 +02:00
echo Removing old files...
rm -rf $DIST
mkdir -p $RESOURCES
cabal sandbox init
2013-09-15 01:02:02 +02:00
echo Updating database
cabal update
2011-07-28 20:41:00 +02:00
echo Building pandoc...
cabal clean
# Use cpphs to avoid problems with clang cpp on ghc 7.8 osx:
cabal install cpphs alex happy hsb2hs
cabal install --reinstall --flags="embed_data_files" --ghc-options '-pgmPcpphs -optP--cpp'
cabal install --reinstall --flags="embed_data_files" pandoc-citeproc --ghc-options '-pgmPcpphs -optP--cpp'
2013-09-15 01:02:02 +02:00
2013-09-21 02:37:19 +02:00
mkdir -p $DEST/bin
mkdir -p $DEST/share/man/man1
mkdir -p $DEST/share/man/man5
2013-09-15 01:02:02 +02:00
for f in $EXES; do
2013-09-21 02:37:19 +02:00
cp $SANDBOX/bin/$f $DEST/bin/;
cp $SANDBOX/share/man/man1/$f.1 $DEST/share/man/man1/
2013-09-15 01:02:02 +02:00
done
2013-09-21 02:37:19 +02:00
cp $SANDBOX/share/man/man5/pandoc_markdown.5 $DEST/share/man/man5/
cp $SCRIPTS/uninstall-pandoc.pl $DEST/bin/
2013-09-02 19:41:52 +02:00
chown -R $ME:staff $DIST
2013-09-21 02:37:19 +02:00
# gzip $DEST/share/man/man?/*.*
# cabal gives man pages the wrong permissions
2013-09-21 02:37:19 +02:00
chmod +r $DEST/share/man/man?/*.*
2011-07-28 20:41:00 +02:00
echo Copying license...
2013-09-15 02:32:54 +02:00
$SANDBOX/bin/pandoc --data data -t rtf -s COPYING -o $RESOURCES/License.rtf
2011-07-28 20:41:00 +02:00
echo Signing pandoc executable...
2013-09-21 02:37:19 +02:00
codesign --force --sign "$CODESIGNID" $DEST/bin/pandoc
# make sure it's valid... returns nonzero exit code if it isn't:
2013-09-21 02:37:19 +02:00
spctl --assess --type execute $DEST/bin/pandoc
2011-07-28 20:41:00 +02:00
echo Creating OSX package...
# remove old package first
echo $PASSWORD | sudo -S rm -rf $BASE.pkg $BASE.dmg
2011-07-28 20:41:00 +02:00
2013-01-19 20:11:34 +01:00
sudo $PACKAGEMAKER \
--root $ROOT \
--id net.johnmacfarlane.pandoc \
--resources $RESOURCES \
--version $VERSION \
--scripts $SCRIPTS \
2011-07-28 20:41:00 +02:00
--out $BASE.pkg
2013-09-02 19:41:52 +02:00
# --no-relocate
echo Signing package...
sudo codesign --force --sign "$CODESIGNID" $BASE.pkg
# make sure it's valid...
spctl --assess --type install $BASE.pkg
echo Creating zip...
zip -9 -r $BASE.pkg.zip $BASE.pkg
2011-07-28 20:41:00 +02:00
# echo Creating disk image...
# sudo hdiutil create "$BASE.dmg" \
# -format UDZO -ov \
# -volname "pandoc $VERSION" \
# -srcfolder $BASE.pkg
# sudo hdiutil internet-enable "$BASE.dmg"
2011-07-28 20:41:00 +02:00