git.iko.soy/typeable/pandoc
on 1.12.2.1 help sign in
typeable/pandoc/make_osx_package.sh
84 lines 2.2 kB history raw
1#!/bin/bash -e
3DIST=`pwd`/osx_package
4SANDBOX=`pwd`/.cabal-sandbox
5VERSION=$(grep -e '^Version' pandoc.cabal | awk '{print $2}')
6RESOURCES=$DIST/Resources
7ROOT=$DIST/pandoc
8DEST=$ROOT/usr/local
9SCRIPTS=osx-resources
10BASE=pandoc-$VERSION
11ME=jgm
12CODESIGNID="Developer ID Application: John Macfarlane"
13PACKAGEMAKER=/Applications/PackageMaker.app/Contents/MacOS/PackageMaker
14EXES="pandoc pandoc-citeproc biblio2yaml"
16read -s -p "sudo password: " PASSWORD
17echo $PASSWORD | sudo -S echo "Password valid, continuing."
19echo Removing old files...
20rm -rf $DIST
21mkdir -p $RESOURCES
23echo Updating database
24cabal update
26echo Building pandoc...
27cabal sandbox init
28cabal clean
29cabal install --reinstall --flags="embed_data_files"
30cabal install --reinstall --flags="embed_data_files" pandoc-citeproc
32mkdir -p $DEST/bin
33mkdir -p $DEST/share/man/man1
34mkdir -p $DEST/share/man/man5
35for f in $EXES; do
36 cp $SANDBOX/bin/$f $DEST/bin/;
37 cp $SANDBOX/share/man/man1/$f.1 $DEST/share/man/man1/
38done
39cp $SANDBOX/share/man/man5/pandoc_markdown.5 $DEST/share/man/man5/
41chown -R $ME:staff $DIST
42# gzip $DEST/share/man/man?/*.*
43# cabal gives man pages the wrong permissions
44chmod +r $DEST/share/man/man?/*.*
46echo Copying license...
47$SANDBOX/bin/pandoc --data data -t rtf -s COPYING -o $RESOURCES/License.rtf
49echo Signing pandoc executable...
51codesign --force --sign "$CODESIGNID" $DEST/bin/pandoc
52# make sure it's valid... returns nonzero exit code if it isn't:
53spctl --assess --type execute $DEST/bin/pandoc
55echo Creating OSX package...
56# remove old package first
57echo $PASSWORD | sudo -S rm -rf $BASE.pkg $BASE.dmg
59sudo $PACKAGEMAKER \
60 --root $ROOT \
61 --id net.johnmacfarlane.pandoc \
62 --resources $RESOURCES \
63 --version $VERSION \
64 --scripts $SCRIPTS \
65 --out $BASE.pkg
67 # --no-relocate
69echo Signing package...
71sudo codesign --force --sign "$CODESIGNID" $BASE.pkg
72# make sure it's valid...
73spctl --assess --type install $BASE.pkg
75echo Creating zip...
76zip -9 -r $BASE.pkg.zip $BASE.pkg
78# echo Creating disk image...
79# sudo hdiutil create "$BASE.dmg" \
80# -format UDZO -ov \
81# -volname "pandoc $VERSION" \
82# -srcfolder $BASE.pkg
83# sudo hdiutil internet-enable "$BASE.dmg"