Fix autoconf 2.70 compatibility
[platform/upstream/krb5.git] / src / util / lndir
1 #! /bin/sh
2
3 # lndir - create shadow link tree
4 #
5 # Time stamp <89/11/28 18:56:54 gildea>
6 # By Stephen Gildea <gildea@bbn.com> based on
7 #  XConsortium: lndir.sh,v 1.1 88/10/20 17:37:16 jim Exp
8 #
9 # Used to create a copy of the a directory tree that has links for all non-
10 # directories (except those named RCS).  If you are building the distribution
11 # on more than one machine, you should use this script.
12 #
13 # If your master sources are located in /usr/local/src/X and you would like
14 # your link tree to be in /usr/local/src/new-X, do the following:
15 #
16 #       %  mkdir /usr/local/src/new-X
17 #       %  cd /usr/local/src/new-X
18 #       %  lndir ../X
19 #
20 # Note: does not link files beginning with "."  Is this a bug or a feature?
21 #
22 # Improvements over R3 version:
23 #   Allows the fromdir to be relative: usually you want to say "../dist"
24 #   The name is relative to the todir, not the current directory.
25 #
26 # Bugs in R3 version fixed:
27 #   Do "pwd" command *after* "cd $DIRTO".
28 #   Don't try to link directories, avoiding error message "<dir> exists".
29 #   Barf with Usage message if either DIRFROM *or* DIRTO is not a directory.
30
31 USAGE="Usage: $0 fromdir [todir]"
32
33 case $0 in 
34 /*) lndir=$0 ;;
35 */*) lndir=`pwd`/$0 ;;
36 *) lndir=$0 ;;
37 esac
38
39 if [ $# -lt 1 -o $# -gt 2 ]
40 then
41         echo "$USAGE"
42         exit 1
43 fi
44
45 DIRFROM=$1
46
47 if [ $# -eq 2 ];
48 then
49         DIRTO=$2
50 else
51         DIRTO=.
52 fi
53
54 if [ ! -d $DIRTO ]
55 then
56         echo "$0: $DIRTO is not a directory"
57         echo "$USAGE"
58         exit 2
59 fi
60
61 cd $DIRTO
62
63 if [ ! -d $DIRFROM ]
64 then
65         echo "$0: $DIRFROM is not a directory"
66         echo "$USAGE"
67         exit 2
68 fi
69
70 pwd=`pwd`
71
72 if [ `(cd $DIRFROM; pwd)` = $pwd ]
73 then
74         echo "$pwd: FROM and TO are identical!"
75         exit 1
76 fi
77
78 for file in `ls -a $DIRFROM`
79 do
80         if [ ! -d $DIRFROM/$file ]
81         then
82                 ln -s $DIRFROM/$file .
83         else
84                if [ $file != RCS -a $file != CVS -a $file != . -a $file != .. ]
85                 then
86                         echo $file:
87                         mkdir $file
88                         (cd $file
89                          pwd=`pwd`
90                          case "$DIRFROM" in
91                                  /*) ;;
92                                  *)  DIRFROM=../$DIRFROM ;;
93                          esac
94                          if [ `(cd $DIRFROM/$file; pwd)` = $pwd ]
95                          then
96                                 echo "$pwd: FROM and TO are identical!"
97                                 exit 1
98                          fi
99                          $lndir $DIRFROM/$file
100                         )
101                 fi
102         fi
103 done