Line | |
---|
1 | |
---|
2 | ##set -x |
---|
3 | |
---|
4 | check_external_link () |
---|
5 | { |
---|
6 | file=$1 |
---|
7 | shift |
---|
8 | |
---|
9 | if test -z "${file}"; then return 1 ; fi |
---|
10 | if test ! -L "${file}"; then return 1 ; fi |
---|
11 | |
---|
12 | a=`ls -l $file | awk '{ print $9 ":" $11}'` |
---|
13 | |
---|
14 | src=`echo $a | cut -d: -f1` |
---|
15 | dest=`echo $a | cut -d: -f2` |
---|
16 | |
---|
17 | if test -z "${dest}"; then |
---|
18 | return 1 |
---|
19 | fi |
---|
20 | |
---|
21 | d=`dirname ${src}` |
---|
22 | if test "${d}" = "."; then d=; fi |
---|
23 | |
---|
24 | hsrc=`(cd ${root}/${d}; pwd)` |
---|
25 | |
---|
26 | d=`dirname ${dest}` |
---|
27 | if test "${d}" = "."; then d=; fi |
---|
28 | |
---|
29 | if test -z `echo ${d} | egrep -e '^/'`; then |
---|
30 | hdest=`(cd ${hsrc}/${d}; pwd)` |
---|
31 | else |
---|
32 | hdest=`(cd ${d}; pwd)` |
---|
33 | fi |
---|
34 | |
---|
35 | while test ! -z `echo ${hdest} | egrep '[.][.]'`; do |
---|
36 | ##echo hdest=${hdest} |
---|
37 | newhdest=`echo ${hdest} | \ |
---|
38 | sed -e 's#/[^/]*/[.][.]/#/#g' \ |
---|
39 | -e 's#^[^/]*/[.][.]/#/#g' \ |
---|
40 | -e 's#/[^/]*/[.][.]$##'` |
---|
41 | if test "${newhdest}" = "${hdest}"; then break; fi |
---|
42 | hdest=${newhdest} |
---|
43 | done |
---|
44 | |
---|
45 | hsrc=`echo ${hsrc} | sed -e "s#${root}/##" -e "s#${root}##"` |
---|
46 | hdest=`echo ${hdest} | sed -e "s#${root}/##" -e "s#${root}##" | egrep '^/'` |
---|
47 | |
---|
48 | if test ! -z "${hdest}"; then |
---|
49 | if test -z `egrep -e "${d}" ${here}/keep_links.dat` ; then |
---|
50 | echo "${src} ${dest}" |
---|
51 | return 0 |
---|
52 | fi |
---|
53 | fi |
---|
54 | |
---|
55 | return 1 |
---|
56 | } |
---|
57 | |
---|
58 | here=`dirname $0` |
---|
59 | if test "${here}" = "."; then here=`pwd`; fi |
---|
60 | if test -z "${here}"; then here=`pwd`; fi |
---|
61 | |
---|
62 | root=$1 |
---|
63 | shift |
---|
64 | |
---|
65 | cd ${root} |
---|
66 | |
---|
67 | links=`find . -type l` |
---|
68 | |
---|
69 | for file in `echo ${links}`; do |
---|
70 | check_external_link ${file} |
---|
71 | status=$? |
---|
72 | if test "${status}" = 0; then |
---|
73 | break |
---|
74 | fi |
---|
75 | done |
---|
76 | |
---|
Note: See
TracBrowser
for help on using the repository browser.