|
1 | | -#!/usr/bin/env sh |
2 | | -# |
3 | | - |
4 | | -set -e |
| 1 | +#!/usr/bin/env bash |
| 2 | +set -euo pipefail |
5 | 3 |
|
6 | 4 | REPO_ROOT="$(dirname "$0")"/.. |
7 | | -( |
8 | | - cd "$REPO_ROOT" |
9 | | - version=$(scripts/get_version.sh) |
10 | | - commithash=$(git rev-parse --short=8 HEAD) |
11 | | - commitdate=$(git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./') |
| 5 | +cd "$REPO_ROOT" |
| 6 | +version=$(scripts/get_version.sh) |
| 7 | +commit_hash=$(git rev-parse --short=8 HEAD) |
| 8 | +commit_date=$(git show --format=%ci HEAD | head -n 1 | cut - -b1-10 | sed -e 's/-0?/./' | sed -e 's/-0?/./') |
| 9 | + |
| 10 | +# File exists and has zero size -> not a prerelease |
| 11 | +if [[ -e prerelease.txt && ! -s prerelease.txt ]]; then |
| 12 | + version_string="$version" |
| 13 | +else |
| 14 | + version_string="${version}-nightly-${commit_date}-${commit_hash}" |
| 15 | +fi |
| 16 | + |
| 17 | +TEMPDIR=$(mktemp -d -t "solc-src-tarball-XXXXXX") |
| 18 | +SOLDIR="${TEMPDIR}/solidity_${version_string}/" |
| 19 | +mkdir "$SOLDIR" |
| 20 | + |
| 21 | +# Ensure that submodules are initialized. |
| 22 | +git submodule update --init --recursive |
| 23 | +# Store the current source |
| 24 | +git checkout-index --all --prefix="$SOLDIR" |
| 25 | +# shellcheck disable=SC2016 |
| 26 | +SOLDIR="$SOLDIR" git submodule foreach 'git checkout-index --all --prefix="${SOLDIR}/${sm_path}/"' |
12 | 27 |
|
13 | | - # file exists and has zero size -> not a prerelease |
14 | | - if [ -e prerelease.txt ] && [ ! -s prerelease.txt ] |
15 | | - then |
16 | | - versionstring="$version" |
17 | | - else |
18 | | - versionstring="$version-nightly-$commitdate-$commithash" |
19 | | - fi |
| 28 | +# Include the commit hash and prerelease suffix in the tarball |
| 29 | +echo "$commit_hash" > "${SOLDIR}/commit_hash.txt" |
| 30 | +[[ -e prerelease.txt && ! -s prerelease.txt ]] && cp prerelease.txt "${SOLDIR}/" |
20 | 31 |
|
21 | | - TEMPDIR=$(mktemp -d) |
22 | | - SOLDIR="$TEMPDIR/solidity_$versionstring/" |
23 | | - mkdir "$SOLDIR" |
24 | | - # Ensure that submodules are initialized. |
25 | | - git submodule update --init --recursive |
26 | | - # Store the current source |
27 | | - git checkout-index -a --prefix="$SOLDIR" |
28 | | - # shellcheck disable=SC2016 |
29 | | - SOLDIR="$SOLDIR" git submodule foreach 'git checkout-index -a --prefix="$SOLDIR/$sm_path/"' |
30 | | - # Store the commit hash |
31 | | - echo "$commithash" > "$SOLDIR/commit_hash.txt" |
32 | | - if [ -e prerelease.txt ] && [ ! -s prerelease.txt ] |
33 | | - then |
34 | | - cp prerelease.txt "$SOLDIR/" |
35 | | - fi |
36 | | - mkdir -p "$REPO_ROOT/upload" |
37 | | - tar --owner 0 --group 0 -czf "$REPO_ROOT/upload/solidity_$versionstring.tar.gz" -C "$TEMPDIR" "solidity_$versionstring" |
38 | | - rm -r "$TEMPDIR" |
39 | | -) |
| 32 | +mkdir -p "$REPO_ROOT/upload" |
| 33 | +tar \ |
| 34 | + --owner 0 \ |
| 35 | + --group 0 \ |
| 36 | + --create \ |
| 37 | + --gzip \ |
| 38 | + --file "${REPO_ROOT}/upload/solidity_${version_string}.tar.gz" \ |
| 39 | + --directory "$TEMPDIR" \ |
| 40 | + "solidity_${version_string}" |
| 41 | +rm -r "$TEMPDIR" |
0 commit comments