git.iko.soy/typeable/pandoc
on master help sign in
typeable/pandoc/linux/make_artifacts.sh
84 lines 2.1 kB history raw
1set -e
3MACHINE=$(uname -m)
4case "$MACHINE" in
5 x86_64) ARCHITECTURE=amd64;;
6 i686) ARCHITECTURE=i386;;
7 i386) ARCHITECTURE=i386;;
8 aarch64) ARCHITECTURE=arm64;;
9 *) ARCHITECTURE=unknown;;
10esac
12ARTIFACTS="${ARTIFACTS:-/artifacts}"
14# This is our sentinel that tells us when we're done.
15rm -f $ARTIFACTS/DONE
17clean_up() {
18 echo "All done!" > "$ARTIFACTS/DONE"
20trap clean_up EXIT
22# build binaries
24cabal --version
25ghc --version
27cabal v2-update
28cabal v2-clean
29cabal v2-configure --enable-tests -f-export-dynamic -fembed_data_files --enable-executable-static --ghc-options '-j4 +RTS -A256m -RTS -split-sections -optc-Os -optl=-pthread' pandoc
30cabal v2-build -j4
31cabal v2-test -j4
32for f in $(find dist-newstyle -name 'pandoc' -type f -perm /400); do cp $f /artifacts/; done
34# make deb
36VERSION=`$ARTIFACTS/pandoc --version | awk '{print $2; exit;}'`
37REVISION=${REVISION:-1}
38DEBVER=$VERSION-$REVISION
39BASE=pandoc-$DEBVER-$ARCHITECTURE
40DIST=`pwd`/$BASE
41DEST=$DIST/usr
42COPYRIGHT=$DEST/share/doc/pandoc/copyright
44mkdir -p $DEST/bin
45mkdir -p $DEST/share/man/man1
46mkdir -p $DEST/share/doc/pandoc
48find $DIST -type d | xargs chmod 755
49cp $ARTIFACTS/pandoc $DEST/bin/
50strip $DEST/bin/pandoc
51cp /mnt/man/pandoc.1 $DEST/share/man/man1/pandoc.1
52gzip -9 $DEST/share/man/man1/pandoc.1
54cp /mnt/COPYRIGHT $COPYRIGHT
55echo "" >> $COPYRIGHT
57INSTALLED_SIZE=$(du -k -s $DEST | awk '{print $1}')
58mkdir $DIST/DEBIAN
59perl -pe "s/VERSION/$DEBVER/" linux/control.in | \
60 perl -pe "s/ARCHITECTURE/$ARCHITECTURE/" | \
61 perl -pe "s/INSTALLED_SIZE/$INSTALLED_SIZE/" \
62 > $DIST/DEBIAN/control
64# we limit compression to avoid OOM error
65fakeroot dpkg-deb -Zgzip -z9 --build $DIST
66rm -rf $DIST
67cp $BASE.deb $ARTIFACTS/
69# Make tarball
71TARGET=pandoc-$VERSION
72cd $ARTIFACTS
73rm -rf $TARGET
74mkdir $TARGET
75mkdir $TARGET/bin $TARGET/share $TARGET/share/man $TARGET/share/man/man1
76cp /mnt/man/pandoc.1 $TARGET/share/man/man1
77mv pandoc $TARGET/bin
78strip $TARGET/bin/pandoc
79gzip -9 $TARGET/share/man/man1/pandoc.1
81tar cvzf $TARGET-linux-$ARCHITECTURE.tar.gz $TARGET
82rm -r $TARGET
84exit 0