summaryrefslogtreecommitdiffstats
path: root/third_party/waf/update.sh
blob: 45fbeec5eff2a8cb8a62a3c97b4d7d7e0973d944 (plain)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash

if [[ $# -lt 1 ]]; then
	echo "Usage: update.sh VERSION"
	exit 1
fi

WAF_VERSION="${1}"
WAF_GIT="https://gitlab.com/ita1024/waf.git"
WAF_UPDATE_SCRIPT="$(readlink -f "$0")"
WAF_SAMBA_DIR="$(dirname "${WAF_UPDATE_SCRIPT}")"
WAF_TMPDIR=$(mktemp --tmpdir -d waf-XXXXXXXX)

echo "VERSION:       ${WAF_VERSION}"
echo "GIT URL:       ${WAF_GIT}"
echo "WAF SAMBA DIR: ${WAF_SAMBA_DIR}"
echo "WAF TMP DIR:    ${WAF_TMPDIR}"

cleanup_tmpdir()
{
	popd 2>/dev/null || true
	rm -rf "$WAF_TMPDIR"
}
trap cleanup_tmpdir SIGINT

cleanup_and_exit()
{
	cleanup_tmpdir
	if test "$1" = 0 -o -z "$1"; then
		exit 0
	else
		exit "$1"
	fi
}

# Checkout the git tree
mkdir -p "${WAF_TMPDIR}"
pushd "${WAF_TMPDIR}" || cleanup_and_exit 1

git clone "${WAF_GIT}"
ret=$?
if [ $ret -ne 0 ]; then
	echo "ERROR: Failed to clone repository"
	cleanup_and_exit 1
fi

pushd waf || cleanup_and_exit 1
git checkout -b "waf-${WAF_VERSION}" "waf-${WAF_VERSION}"
ret=$?
if [ $ret -ne 0 ]; then
	echo "ERROR: Failed to checkout waf-${WAF_VERSION} repository"
	cleanup_and_exit 1
fi
popd || cleanup_and_exit 1

popd || cleanup_and_exit 1

# Update waflib
pushd "${WAF_SAMBA_DIR}" || cleanup_and_exit 1
pwd

rm -rf waflib/
rsync -av "${WAF_TMPDIR}/waf/waflib" .
ret=$?
if [ $ret -ne 0 ]; then
	echo "ERROR: Failed copy waflib"
	cleanup_and_exit 1
fi
chmod -x waflib/Context.py

git add waflib

popd || cleanup_and_exit 1

echo
echo "Now please change VERSION in buildtools/bin/waf and"
echo "Context.HEXVERSION in buildtools/wafsamba/wafsamba.py"
grep WAFVERSION "${WAF_SAMBA_DIR}/waflib/Context.py"
grep HEXVERSION "${WAF_SAMBA_DIR}/waflib/Context.py"
echo

cleanup_and_exit 0