1 | #!/bin/bash |
---|
2 | |
---|
3 | # Zoekt een file in de file-list-cache. update de cache indien nodig. |
---|
4 | # Houdt rekeing met verschillende HOSTitecturen door naar HOST variabelle te kijken. |
---|
5 | # De standandaard HOSTitectuur is wegens historische redenen 'npl' (i386) |
---|
6 | # Andere HOSTitecturen bevinden zich op dit moment 1 dir hoger. (dus zelfde plek als npl staat) |
---|
7 | # Voorbeeld: HOST=powerpc-405-linux-gnu |
---|
8 | |
---|
9 | |
---|
10 | cd `dirname $0`/.. || exit 1 |
---|
11 | FILE=$1 |
---|
12 | BASE=`pwd` |
---|
13 | cd $BASE/npl |
---|
14 | |
---|
15 | updatecache() |
---|
16 | { |
---|
17 | LIST=`stat -c %Y .tmp/files.$HOST 2>/dev/null` |
---|
18 | NOW=`date +%s` |
---|
19 | (( DIFF = NOW - LIST )) |
---|
20 | if [ ! -e .tmp/files.$HOST ] || [ "$1" == "force" ] || [ $DIFF -gt 60 ]; then |
---|
21 | #not found, update filelist and try again.. |
---|
22 | #echo "Rebuilding filelist.." >&2 |
---|
23 | mkdir .tmp 2>/dev/null |
---|
24 | find -L $BASE/$HOST | grep -v '\.svn' > .tmp/files.$$ |
---|
25 | mv .tmp/files.$$ .tmp/files.$HOST || exit 1 |
---|
26 | fi |
---|
27 | |
---|
28 | } |
---|
29 | |
---|
30 | |
---|
31 | findcache() |
---|
32 | { |
---|
33 | grep "/$FILE\$" .tmp/files.$HOST 2>/dev/null |
---|
34 | } |
---|
35 | |
---|
36 | |
---|
37 | if [ "$HOST" == "" ]; then |
---|
38 | HOST="npl"; |
---|
39 | fi |
---|
40 | |
---|
41 | |
---|
42 | #1. zoeken in opgegeven HOST |
---|
43 | findcache $FILE && exit 0 |
---|
44 | |
---|
45 | |
---|
46 | #2. update opgegeven HOST en zoek nog een keer |
---|
47 | updatecache |
---|
48 | findcache $FILE && exit 0 |
---|
49 | |
---|
50 | #we hebben al in npl gezocht, dus er is niks om terug te vallen: |
---|
51 | [ "$HOST" == "npl" ] && exit 1 |
---|
52 | |
---|
53 | #3. pak default HOST (npl) en probeer nog eens. |
---|
54 | # Dit is nodig voor bijvoorbeeld crosscompilers voor de destbetreffende HOSTitectuur. |
---|
55 | # gcc_powerpc valt namelijk onder i386 (npl) en NIET onder powerpc zelf, omdat het een HOSTcompiler is! |
---|
56 | |
---|
57 | HOST=npl |
---|
58 | findcache $FILE && exit 0 |
---|
59 | updatecache |
---|
60 | findcache $FILE && exit 0 |
---|
61 | |
---|
62 | # not found |
---|
63 | exit 1 |
---|