#!/bin/ksh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. # # clone a directory to another using symlinks, in a very clunky way if [ $# != 2 ]; then echo "usage $0 srcdir destdir" exit 1 fi srcdir=$1 destdir=$2 PATH=/usr/bin if [ "X$CLONEY_MODE" = "X" ];then CLONEY_MODE="symlink" fi echo $CLONEY_MODE cloning $srcdir to $destdir if [ "$CLONEY_MODE" = "symlink" ]; then cd ${srcdir} gfind . -type d | \ grep -v '^.$' | \ gsed -e 's,^\./,,' | \ while read i; do mkdir -p "${destdir}/$i" done # Copy files and symlinks, making sure we ignore the gnu-patch backup # files, too. gfind . -type f -o -type l | \ egrep -v '~[0-9]+~' | \ gsed -e 's,^\./,,' | \ while read i; do rm -f "${destdir}/$i" ln -s "${srcdir}/$i" "${destdir}/$i" done elif [ "$CLONEY_MODE" = "hardlink" ]; then cd ${srcdir} gfind . -type d | \ grep -v '^.$' | \ gsed -e 's,^\./,,' | \ while read i; do mkdir -p "${destdir}/$i" done # Copy files and symlinks, making sure we ignore the gnu-patch backup # files, too. gfind . -type f -o -type l | \ egrep -v '~[0-9]+~' | \ gsed -e 's,^\./,,' | \ while read i; do rm -f "${destdir}/$i" ln "${srcdir}/$i" "${destdir}/$i" done elif [ "$CLONEY_MODE" = "copy" ]; then cd ${srcdir} gfind . -type d | \ grep -v '^.$' | \ gsed -e 's,^\./,,' | \ while read i; do mkdir -p "${destdir}/$i" done # Copy files and symlinks, making sure we ignore the gnu-patch backup # files, too. gfind . -type f -o -type l | \ egrep -v '~[0-9]+~' | \ gsed -e 's,^\./,,' | \ while read i; do rm -f "${destdir}/$i" cp -a "${srcdir}/$i" "${destdir}/$i" done else echo "CLONEY_MODE=$CLONEY_MODE not supported" exit 1 fi