2003-08-06 Michael Chastain <mec@shout.net>
[deliverable/binutils-gdb.git] / symlink-tree
CommitLineData
252b5132
RH
1#!/bin/sh
2# Create a symlink tree.
3#
4# Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
5#
6# where srcdir is the directory to create a symlink tree to,
7# and "ignoreN" is a list of files/directories to ignore.
8
9prog=$0
10srcdir=$1
11ignore="$2"
12
cffaa281
JL
13if test $# -lt 1; then
14 echo "symlink-tree error: Usage: symlink-tree srcdir \"ignore1 ignore2 ...\""
15 exit 1
16fi
17
252b5132
RH
18ignore_additional=". .. CVS"
19
20# If we were invoked with a relative path name, adjust ${prog} to work
21# in subdirs.
22case ${prog} in
d932cae7 23/* | [A-Za-z]:[\\/]*) ;;
252b5132
RH
24*) prog=../${prog} ;;
25esac
26
27# Set newsrcdir to something subdirectories can use.
28case ${srcdir} in
d932cae7 29/* | [A-Za-z]:[\\/]*) newsrcdir=${srcdir} ;;
252b5132
RH
30*) newsrcdir=../${srcdir} ;;
31esac
32
33for f in `ls -a ${srcdir}`; do
34 if [ -d ${srcdir}/$f ]; then
35 found=
36 for i in ${ignore} ${ignore_additional}; do
37 if [ "$f" = "$i" ]; then
38 found=yes
39 fi
40 done
41 if [ -z "${found}" ]; then
42 echo "$f ..working in"
43 if [ -d $f ]; then true; else mkdir $f; fi
44 (cd $f; ${prog} ${newsrcdir}/$f "${ignore}")
45 fi
46 else
47 echo "$f ..linked"
48 rm -f $f
49 ln -s ${srcdir}/$f .
50 fi
51done
52
53exit 0
This page took 0.185524 seconds and 4 git commands to generate.