Marcel Telka
2024-04-05 e5e9b978d16f3a418fcae51695fb9398f0a160ed
commit | author | age
4f8cfa 1 #!/bin/ksh
MS 2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22 # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
23 #
24 # clone a directory to another using symlinks, in a very clunky way
25
26 if [ $# != 2 ]; then
27     echo "usage $0 srcdir destdir"
28     exit 1
29 fi
30
31 srcdir=$1
32 destdir=$2
33
34 PATH=/usr/bin
603e43 35 if [ "X$CLONEY_MODE" = "X" ];then
TW 36     CLONEY_MODE="symlink"
37 fi
4f8cfa 38
603e43 39 echo $CLONEY_MODE cloning $srcdir to $destdir
4f8cfa 40
603e43 41 if [ "$CLONEY_MODE" = "symlink" ]; then
4f8cfa 42 cd ${srcdir}
61a323 43 gfind . -type d | \
4f8cfa 44     grep -v '^.$' | \
58da5e 45     gsed -e 's,^\./,,' | \
61a323 46     while read i;
4f8cfa 47 do
61a323 48     mkdir -p "${destdir}/$i"
4f8cfa 49 done
MS 50
58da5e 51 # Copy files and symlinks, making sure we ignore the gnu-patch backup
DD 52 # files, too.
e4b0fe 53 gfind . -type f -o -type l | \
58da5e 54     egrep -v '~[0-9]+~' | \
DD 55     gsed -e 's,^\./,,' | \
61a323 56     while read i;
4f8cfa 57 do
61a323 58     rm -f "${destdir}/$i"
603e43 59     ln -s "${srcdir}/$i" "${destdir}/$i"
4f8cfa 60 done
603e43 61 elif [ "$CLONEY_MODE" = "hardlink" ]; then
TW 62 cd ${srcdir}
63 gfind . -type d | \
64     grep -v '^.$' | \
65     gsed -e 's,^\./,,' | \
66     while read i;
67 do
d7489e 68     mkdir -p "${destdir}/$i"
603e43 69 done
TW 70
71 # Copy files and symlinks, making sure we ignore the gnu-patch backup
72 # files, too.
73 gfind . -type f -o -type l | \
74     egrep -v '~[0-9]+~' | \
75     gsed -e 's,^\./,,' | \
76     while read i;
77 do
d7489e 78     rm -f "${destdir}/$i"
MT 79     ln "${srcdir}/$i" "${destdir}/$i"
603e43 80 done
TW 81 elif [ "$CLONEY_MODE" = "copy" ]; then
d7489e 82 cd ${srcdir}
MT 83 gfind . -type d | \
84     grep -v '^.$' | \
85     gsed -e 's,^\./,,' | \
86     while read i;
87 do
88     mkdir -p "${destdir}/$i"
89 done
90
91 # Copy files and symlinks, making sure we ignore the gnu-patch backup
92 # files, too.
93 gfind . -type f -o -type l | \
94     egrep -v '~[0-9]+~' | \
95     gsed -e 's,^\./,,' | \
96     while read i;
97 do
98     rm -f "${destdir}/$i"
9ef96e 99     cp -a "${srcdir}/$i" "${destdir}/$i"
d7489e 100 done
603e43 101 else
TW 102     echo "CLONEY_MODE=$CLONEY_MODE not supported"
103     exit 1
104 fi