| 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 |
|---|