Ticket #7010: cpsvndir2.patch
File cpsvndir2.patch, 1.5 KB (added by , 15 years ago) |
---|
-
themes/cpsvndir
2 2 # 3 3 # cpsvndir: recursive directory copy excluding .svn sub dirs. 4 4 5 5 6 if [ -z "$1" -o -z "$2" ]; then 6 7 echo "Usage: $0 source-dir destination-dir" 7 8 exit -1 … … 20 21 if [ -z "$EGID" ]; then EGID=0 ;fi # Will fail if not root 21 22 fi 22 23 23 BASE=$(basename "$1") 24 case "$BASE" in 25 .|..|/) BASE="" ;; 26 *) BASE="/$BASE" ;; 27 esac 28 29 SRC="$1" 30 31 case "$2" in 32 /*) DEST="$2$BASE" ;; 33 *) DEST="$(pwd)/$2$BASE" ;; 34 esac 35 36 #echo "BASE=$BASE SRC=$SRC DEST=$DEST" 37 38 IFS=' 39 ' 40 41 # Copy all files and directories except .svn 42 cd "$SRC" 43 for file in $(find . -name .svn -prune -or -print); do 44 #echo "processing $file" 45 if [ -d "$file" ]; then 46 mkdir -p "$DEST/$file" 24 # Build directory structure 25 IFS=$'\012' 26 for directory in $(find "$1" -path '*/.svn' -prune -or -type d -print); do 27 if [ ${directory:${#1}} ]; then 28 mkdir -p "$2/${1##*/}/${directory:${#1}}" 47 29 else 48 cp -p "$file" "$DEST/$file" 49 chown $EUID:$EGID "$DEST/$file" 50 chmod +r "$DEST/$file" &> /dev/null 30 mkdir -p "$2/${1##*/}" 51 31 fi 52 32 done 53 33 54 exit 0 34 # Copy files 35 for file in $(find "$1" -path '*/.svn' -prune -or ! -type d -print); do 36 cp -pR "$file" "$2/${1##*/}/${file:${#1}}" 37 chown $EUID:$EGID "$2/${1##*/}/${file:${#1}}" &> /dev/null 38 chmod +r "$2/${1##*/}/${file:${#1}}" &> /dev/null 39 done 55 40 41 exit 0