(linenum→info "unix/slp.c:2238")

gcc/4.2.2/symlink-tree

    1: #!/bin/sh
    2: # Create a symlink tree.
    3: #
    4: # Copyright (C) 1995, 2000, 2003  Free Software Foundation, Inc.
    5: #
    6: # This file is free software; you can redistribute it and/or modify
    7: # it under the terms of the GNU General Public License as published by
    8: # the Free Software Foundation; either version 2 of the License, or
    9: # (at your option) any later version.
   10: #
   11: # This program is distributed in the hope that it will be useful,
   12: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   13: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   14: # GNU General Public License for more details.
   15: #
   16: # You should have received a copy of the GNU General Public License
   17: # along with this program; if not, write to the Free Software
   18: # Foundation, Inc., 51 Franklin Street, Fifth Floor,
   19: # Boston, MA 02110-1301, USA.
   20: #
   21: # As a special exception to the GNU General Public License, if you
   22: # distribute this file as part of a program that contains a
   23: # configuration script generated by Autoconf, you may include it under
   24: # the same distribution terms that you use for the rest of that program.
   25: #
   26: # Please report bugs to <gcc-bugs@gnu.org>
   27: # and send patches to <gcc-patches@gnu.org>.
   28: 
   29: # Syntax: symlink-tree srcdir "ignore1 ignore2 ..."
   30: #
   31: # where srcdir is the directory to create a symlink tree to,
   32: # and "ignoreN" is a list of files/directories to ignore.
   33: 
   34: prog=$0
   35: srcdir=$1
   36: ignore="$2"
   37: 
   38: if test $# -lt 1; then
   39:   echo "symlink-tree error:  Usage: symlink-tree srcdir \"ignore1 ignore2 ...\""
   40:   exit 1
   41: fi
   42: 
   43: ignore_additional=". .. CVS"
   44: 
   45: # If we were invoked with a relative path name, adjust ${prog} to work
   46: # in subdirs.
   47: case ${prog} in
   48: /* | [A-Za-z]:[\\/]*) ;;
   49: *) prog=../${prog} ;;
   50: esac
   51: 
   52: # Set newsrcdir to something subdirectories can use.
   53: case ${srcdir} in
   54: /* | [A-Za-z]:[\\/]*) newsrcdir=${srcdir} ;;
   55: *) newsrcdir=../${srcdir} ;;
   56: esac
   57: 
   58: for f in `ls -a ${srcdir}`; do
   59:   if [ -d ${srcdir}/$f ]; then
   60:     found=
   61:     for i in ${ignore} ${ignore_additional}; do
   62:       if [ "$f" = "$i" ]; then
   63:         found=yes
   64:       fi
   65:     done
   66:     if [ -z "${found}" ]; then
   67:       echo "$f          ..working in"
   68:       if [ -d $f ]; then true; else mkdir $f; fi
   69:       (cd $f; ${prog} ${newsrcdir}/$f "${ignore}")
   70:     fi
   71:   else
   72:     echo "$f            ..linked"
   73:     rm -f $f
   74:     ln -s ${srcdir}/$f .
   75:   fi
   76: done
   77: 
   78: exit 0
Syntax (Markdown)