source: cmtpacman/HEAD/scripts/filter_links.sh @ 59

Last change on this file since 59 was 53, checked in by arnault, 19 years ago

From CVS to SVN

File size: 1.5 KB
Line 
1
2##set -x
3
4check_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
58here=`dirname $0`
59if test "${here}" = "."; then here=`pwd`; fi
60if test -z "${here}"; then here=`pwd`; fi
61
62root=$1
63shift
64
65cd ${root}
66
67links=`find . -type l`
68
69for file in `echo ${links}`; do
70  check_external_link ${file}
71  status=$?
72  if test "${status}" = 0; then
73    break
74  fi
75done
76
Note: See TracBrowser for help on using the repository browser.