|
16 | 16 | # The script will output a `stack-setup.yaml` file containing info for each |
17 | 17 | # platform that you can paste into |
18 | 18 | # https://github.com/fpco/stackage-content/blob/master/stack/stack-setup-2.yaml. |
| 19 | +# Be sure to double check the SHA1 sums against those in |
| 20 | +# https://downloads.haskell.org/~ghc/X.Y.Z/. |
19 | 21 | # |
20 | | -GHCVER=8.0.2 |
| 22 | +GHCVER=8.2.1 |
21 | 23 | if [[ -z "$GITHUB_AUTH_TOKEN" ]]; then |
22 | 24 | echo "$0: GITHUB_AUTH_TOKEN environment variable is required" >&2 |
23 | 25 | exit 1 |
|
33 | 35 | echo 'ghc:' >stack-setup.yaml |
34 | 36 |
|
35 | 37 | mirror () { |
36 | | - local srcfn=ghc-$GHCVER-$2.tar.$3 |
| 38 | + suffix="$1"; shift |
| 39 | + srcext="$1"; shift |
| 40 | + destext="$1"; shift |
| 41 | + local srcfn=ghc-$GHCVER-${suffix}.tar.${srcext} |
37 | 42 | if [[ ! -s "$srcfn.downloaded" ]]; then |
38 | 43 | rm -f "$srcfn" |
39 | 44 | curl -LO --fail "http://downloads.haskell.org/~ghc/$GHCVER/$srcfn" |
40 | 45 | date >"$srcfn.downloaded" |
41 | 46 | fi |
42 | | - local destfn=ghc-$GHCVER-$2.tar.$4 |
| 47 | + local destfn=ghc-$GHCVER-${suffix}.tar.${destext} |
43 | 48 | if [[ ! -s "$destfn.uploaded" ]]; then |
44 | | - if [[ "$3" == "xz" && "$4" == "bz2" ]]; then |
| 49 | + if [[ "${srcext}" == "xz" && "${destext}" == "bz2" ]]; then |
45 | 50 | xzcat "$srcfn" | bzip2 -c > "$destfn" |
46 | | - elif [[ "$3" != "$4" ]]; then |
| 51 | + elif [[ "${srcext}" != "${destext}" ]]; then |
47 | 52 | set +x |
48 | 53 | echo |
49 | | - echo "$0: Unsupported conversion: $3 to $4" >&2 |
| 54 | + echo "$0: Unsupported conversion: ${srcext} to ${destext}" >&2 |
50 | 55 | exit 1 |
51 | 56 | fi |
52 | 57 | curl -X POST --data-binary "@$destfn" -H "Content-type: application/octet-stream" -H "Authorization: token $GITHUB_AUTH_TOKEN" "$UPLOAD_URL?name=$destfn" |
53 | 58 | date >"$destfn.uploaded" |
54 | 59 | fi |
55 | | - echo " $1:" >>stack-setup.yaml |
56 | | - echo " $GHCVER:" >>stack-setup.yaml |
57 | | - echo " url: \"https://github.com/commercialhaskell/ghc/releases/download/ghc-$GHCVER-release/$destfn\"" >>stack-setup.yaml |
58 | | - echo " content-length: $(stat --printf="%s" "$destfn" 2>/dev/null || stat -f%z "$destfn")" >>stack-setup.yaml |
59 | | - echo " sha1: $(sha1sum $destfn |cut -d' ' -f1)" >>stack-setup.yaml |
| 60 | + while [[ $# -gt 0 ]]; do |
| 61 | + alias="$1" |
| 62 | + echo " $alias:" >>stack-setup.yaml |
| 63 | + echo " $GHCVER:" >>stack-setup.yaml |
| 64 | + echo " url: \"https://github.com/commercialhaskell/ghc/releases/download/ghc-$GHCVER-release/$destfn\"" >>stack-setup.yaml |
| 65 | + echo " content-length: $(stat --printf="%s" "$destfn" 2>/dev/null || stat -f%z "$destfn")" >>stack-setup.yaml |
| 66 | + echo " sha1: $(sha1sum $destfn |cut -d' ' -f1)" >>stack-setup.yaml |
| 67 | + shift |
| 68 | + done |
60 | 69 | } |
61 | 70 |
|
62 | | -mirror linux32 i386-deb7-linux xz xz |
63 | | -mirror linux32-nopie i386-deb8-linux xz xz |
64 | | -mirror linux64 x86_64-deb7-linux xz xz |
65 | | -mirror linux64-nopie x86_64-deb8-linux xz xz |
66 | | -mirror linux32-gmp4 i386-centos67-linux xz xz |
67 | | -mirror linux64-gmp4 x86_64-centos67-linux xz xz |
68 | | -mirror macosx x86_64-apple-darwin xz bz2 |
69 | | -mirror windows32 i386-unknown-mingw32 xz xz |
70 | | -mirror windows64 x86_64-unknown-mingw32 xz xz |
71 | | -mirror freebsd32 i386-portbld-freebsd xz xz |
72 | | -mirror freebsd64 x86_64-portbld-freebsd xz xz |
73 | | -mirror openbsd64 x86_64-unknown-openbsd xz xz |
74 | | -mirror linux-armv7 armv7-deb8-linux xz xz |
| 71 | +mirror i386-deb7-linux xz xz linux32 |
| 72 | +mirror i386-deb8-linux xz xz linux32-nopie |
| 73 | +mirror x86_64-deb7-linux xz xz linux64 |
| 74 | +mirror x86_64-deb8-linux xz xz linux64-nopie |
| 75 | +#@@@ 32-bit centos6 doesn't seem to be available: mirror i386-centos67-linux xz xz linux32-gmp4 |
| 76 | +mirror x86_64-centos67-linux xz xz linux64-gmp4 |
| 77 | +mirror armv7-deb8-linux xz xz linux-armv7 |
| 78 | +mirror aarch64-deb8-linux xz xz linux-aarch64 #@@@: move to after linux-armv7 |
| 79 | +mirror i386-unknown-mingw32 xz xz windows32 |
| 80 | +mirror x86_64-unknown-mingw32 xz xz windows64 |
| 81 | +mirror x86_64-apple-darwin xz bz2 macosx |
| 82 | +#@@@: add support for freebsd11 vs. freebsd10 to Stack (I think there may already be an issue for that?) |
| 83 | +#@@@: 32-bit freebsd not available: mirror i386-portbld-freebsd xz xz freebsd32 |
| 84 | +mirror x86_64-portbld10_3-freebsd xz xz freebsd64 |
| 85 | +mirror x86_64-portbld11-freebsd xz xz freebsd64-11 |
| 86 | +mirror x86_64-openbsd60-openbsd xz xz openbsd64 |
75 | 87 |
|
76 | 88 | set +x |
77 | 89 | echo |
|
0 commit comments