Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add a script to update waf; it will come in handy now and in the future
- Loading branch information
1 parent
adae4b5
commit 75c27f6
Showing
1 changed file
with
94 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
#/bin/sh | ||
# This script eases updating the waf build system. Make sure wget and gpg are | ||
# installed and run: | ||
# $ ./waf-update.sh <version> | ||
# This script will deploy the build system in source form as to ease downtream | ||
# maintainence at Debian/Ubuntu. For example see [1] and the pages it links to. | ||
# [1] https://wiki.debian.org/UnpackWaf | ||
|
||
script=`basename ${0}` | ||
|
||
msg() { | ||
echo "${script}: ${@}" | ||
} | ||
|
||
die() { | ||
msg "${@}" | ||
exit 1 | ||
} | ||
|
||
test $# -ne 1 && die "usage: ${script} <version>" | ||
version=${1} | ||
|
||
homepage=https://waf.io | ||
|
||
# Fetch the pubkey from the main homepage. | ||
pubkey=tnagy1024.asc | ||
if ! test -e ${pubkey} | ||
then | ||
wget ${homepage}/${pubkey} || die "wget failed" | ||
fi | ||
|
||
# The key can also be found at freehackers. | ||
pubkey2=${pubkey}.2 | ||
if ! test -e ${pubkey2} | ||
then | ||
wget http://freehackers.org/~tnagy/${pubkey} -O ${pubkey2} || die "wget failed" | ||
fi | ||
|
||
# Make sure the keys are identic. | ||
cmp ${pubkey} ${pubkey2} | ||
status=$? | ||
if test $status -eq 0 | ||
then | ||
msg "${pubkey} and ${pubkey2} match" | ||
elif test $status -eq 1 | ||
then | ||
die "${pubkey} and ${pubkey2} did not match" | ||
else | ||
die "cmp failed" | ||
fi | ||
|
||
# Now that the keys match, it is likely that this key is the real key so import | ||
# it. | ||
gpg --import ${pubkey} || die "could not import public key" | ||
|
||
waf_dir=waf-${version} | ||
waf_tar=${waf_dir}.tar.bz2 | ||
waf_asc=${waf_tar}.asc | ||
|
||
if ! test -e ${waf_tar} | ||
then | ||
wget ${homepage}/${waf_tar} || die "wget failed" | ||
fi | ||
|
||
if ! test -e ${waf_asc} | ||
then | ||
wget ${homepage}/${waf_asc} || die "wget failed" | ||
fi | ||
|
||
gpg --verify ${waf_asc} | ||
if test $? -eq 0 | ||
then | ||
msg "tarball verification succeeded" | ||
else | ||
die "tarball verificatin failed" | ||
fi | ||
|
||
if test -d ${waf_dir} | ||
then | ||
rm -rf ${waf_dir} || die "could not remove old waf directory" | ||
fi | ||
|
||
tar xjf ${waf_tar} || die "could not unpack tarball" | ||
|
||
# Remove the old waflib directory and replace it with the new. | ||
git rm -rf waflib || die "could not remove old waflib directory" | ||
cp -R ${waf_dir}/waflib . || die "could not copy waflib directory" | ||
git add waflib || die "could not add waflib to version control" | ||
|
||
# Copy the waf-light script to the toplevel directory and rename it to waf so | ||
# that the usual ./waf [args] can be used. | ||
cp ${waf_dir}/waf-light waf || die "could not copy waf-light" | ||
|
||
exit 0 |