-
Notifications
You must be signed in to change notification settings - Fork 212
/
Copy pathar-rebar3
executable file
·68 lines (57 loc) · 1.76 KB
/
ar-rebar3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
if [ $# -ne 2 ]; then
echo "ar-rebar3 <profile> <command>"
exit 1
fi
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROFILE=$1
COMMAND=$2
create_overlay_var() {
local target="_vars.config"
local name="${1}"
local value="$(eval ${2} 2>/dev/null || echo undefined)"
if ! echo "${name}" | grep -E '^[a-z]+[0-9A-Za-z_]+$' >/dev/null
then
echo "invalid variable ${name}" 1>&2
return 1
fi
if ! echo "${value}" | grep -E '^[[:print:]]+$' >/dev/null
then
echo "invalid value ${value}" 1>&2
return 1
fi
if test -e "${target}"
then
printf '{%s, "%s"}.\n' "${name}" "${value}" >> "${target}"
return 0
fi
printf '{%s, "%s"}.\n' "${name}" "${value}" > "${target}"
return 0
}
echo Removing build artifacts...
set -x
rm -f "_vars.config"
rm -f "${SCRIPT_DIR}/lib"
rm -f "${SCRIPT_DIR}/releases"
{ set +x; } 2>/dev/null
echo
echo "Crafting overlay variables..."
create_overlay_var git_rev "git rev-parse HEAD"
create_overlay_var datetime "date -u '+%Y-%m-%dT%H:%M:%SZ'"
create_overlay_var cc_version "cc --version | head -n1"
create_overlay_var gmake_version "gmake --version | head -n1"
create_overlay_var cmake_version "cmake --version | head -n1"
echo "Executing rebar3 as ${PROFILE} ${COMMAND}"
${SCRIPT_DIR}/rebar3 as ${PROFILE} ${COMMAND}
if [ "${COMMAND}" = "release" ]; then
RELEASE_PATH=$(${SCRIPT_DIR}/rebar3 as ${ARWEAVE_BUILD_TARGET:-default} path --rel)
echo
echo Copying and linking build artifacts
set -x
cp ${RELEASE_PATH}/arweave/bin/arweave ${SCRIPT_DIR}/bin/arweave
cp ${RELEASE_PATH}/arweave/bin/arweave ${SCRIPT_DIR}/bin/arweave-dev
ln -s ${RELEASE_PATH}/arweave/releases ${SCRIPT_DIR}/releases
ln -s ${RELEASE_PATH}/arweave/lib ${SCRIPT_DIR}/lib
{ set +x; } 2>/dev/null
echo
fi