@@ -1,7 +1,8 @@
1+## This script can be run on any supported OS to create a binary .tar.gz
3+## For Windows, msysgit contains all of the pieces needed to run this script.
3−SCRIPTPATH=$( cd "$(dirname "$0")" ; pwd -P )
7if [ -z $OS ]
8if [ -z $OS ]
@@ -10,39 +11,51 @@ then
13−pushd ${SCRIPTPATH} > /dev/null
14+pushd $(stack path --project-root)
16+LOCAL_INSTALL_ROOT=$(stack path --local-install-root)
18+if [ "$OS" = "win64" ]
15# Make the staging directory
25# Make the staging directory
16−mkdir -p build/purescript/
26+mkdir -p bundle/build/purescript
18−# Strip the binaries
28+# Strip the binaries, and copy them to the staging directory
19−strip ~/.local/bin/psc
29+for BIN in psc psci psc-docs psc-publish psc-bundle psc-ide-server psc-ide-client
20−strip ~/.local/bin/psci
30+do
21−strip ~/.local/bin/psc-docs
31+ FULL_BIN="$LOCAL_INSTALL_ROOT/bin/${BIN}${BIN_EXT}"
22−strip ~/.local/bin/psc-publish
32+ strip "$FULL_BIN" || true # not the end of the world if this fails, and
23−strip ~/.local/bin/psc-bundle
33+ # AppVeyor can't seem to handle it for some reason
24−strip ~/.local/bin/psc-ide-server
34+ cp "$FULL_BIN" bundle/build/purescript
25−strip ~/.local/bin/psc-ide-client
35+done
27−# Copy files to staging directory
37+# Copy extra files to the staging directory
28−cp ~/.local/bin/psc build/purescript/
29−cp ~/.local/bin/psci build/purescript/
30−cp ~/.local/bin/psc-docs build/purescript/
31−cp ~/.local/bin/psc-publish build/purescript/
32−cp ~/.local/bin/psc-bundle build/purescript/
33−cp ~/.local/bin/psc-ide-server build/purescript/
34−cp ~/.local/bin/psc-ide-client build/purescript/
35−cp README build/purescript/
38+cp bundle/README bundle/build/purescript/
36−cp ../LICENSE build/purescript/
39+cp LICENSE bundle/build/purescript/
37−cp ../INSTALL.md build/purescript/
40+cp INSTALL.md bundle/build/purescript/
42+stack list-dependencies >bundle/build/purescript/dependencies.txt
39# Make the binary bundle
44# Make the binary bundle
40−pushd build > /dev/null
45+pushd bundle/build > /dev/null
41−tar -zcvf ../$OS.tar.gz purescript
46+tar -zcvf ../${OS}.tar.gz purescript
42popd > /dev/null
47popd > /dev/null
44# Calculate the SHA hash
49# Calculate the SHA hash
50+if [ "$OS" = "win64" ]
52+ # msys/mingw does not include shasum. :(
53+ SHASUM="openssl dgst -sha1"
45−shasum $OS.tar.gz > $OS.sha
58+$SHASUM bundle/${OS}.tar.gz > bundle/${OS}.sha
47# Remove the staging directory
60# Remove the staging directory
48rm -rf build/
61rm -rf build/