root / autotools / run-in-tempdir @ dd60179d
History | View | Annotate | Download (909 Bytes)
1 |
#!/bin/bash |
---|---|
2 |
|
3 |
# Helper for running things in a temporary directory; used for docs |
4 |
# building, unittests, etc. |
5 |
|
6 |
set -e |
7 |
|
8 |
tmpdir=$(mktemp -d -t gntbuild.XXXXXXXX) |
9 |
trap "rm -rf $tmpdir" EXIT |
10 |
|
11 |
linkcopy() { |
12 |
cp -L -s -r "$@" |
13 |
} |
14 |
|
15 |
dirs=( autotools daemons scripts lib tools qa ) |
16 |
|
17 |
if [[ -z "$COPY_DOC" ]]; then |
18 |
mkdir $tmpdir/doc |
19 |
ln -s $PWD/doc/examples $tmpdir/doc |
20 |
else |
21 |
# Building documentation requires all files |
22 |
dirs+=( doc ) |
23 |
fi |
24 |
|
25 |
# Create symlinks |
26 |
for i in ${dirs[@]}; do |
27 |
linkcopy $PWD/$i $tmpdir |
28 |
done |
29 |
|
30 |
mkdir $tmpdir/test/ |
31 |
linkcopy $PWD/test/py $tmpdir/test/py |
32 |
ln -s $PWD/test/data $tmpdir/test |
33 |
ln -s $PWD/test/hs $tmpdir/test |
34 |
|
35 |
mv $tmpdir/lib $tmpdir/ganeti |
36 |
ln -T -s $tmpdir/ganeti $tmpdir/lib |
37 |
|
38 |
mkdir -p $tmpdir/src $tmpdir/test/hs |
39 |
for hfile in htools ganeti-confd mon-collector; do |
40 |
if [ -e src/$hfile ]; then |
41 |
ln -s $PWD/src/$hfile $tmpdir/src/ |
42 |
fi |
43 |
done |
44 |
|
45 |
cd $tmpdir && GANETI_TEMP_DIR="$tmpdir" "$@" |