root/releases/bedework-3.5/util/svncopy.sh

Revision 2253 (checked in by douglm, 4 years ago)

Fix svncopy to remove unwanted project.

Remove from svn:externals

Line 
1 #!/bin/sh
2
3 # Copy the current trunk to a new location and adjust the externals property
4
5 usage() {
6   echo "This script will copy the trunk (or named location) to a new location and"
7   echo "adjust the svn:externals property to refer to the new copies"
8   echo " "
9   echo " $0 help"
10   echo " $0 (branch | tag | release) name comment-text [ from (branch | tag | release) name]"
11   echo " "
12   echo " par 1: branch tag or release specifies what kind of copy"
13   echo " par 2: name e.g. my-copy or bedework-4.0.1"
14   echo " par 3: comment text"
15   echo " "
16   echo ' e.g. svncopy branch my-copy "my personal branch"'
17   echo " "
18   exit
19 }
20
21 # Check a parameter is set
22 #
23 # par 1: branch/tag/release
24 #
25 checkbranchtag() {
26   if [ "${1}x" = "x" ]
27   then
28       usage
29   fi
30
31   case "$1" in
32     branch)
33       BTR="branches"
34       ;;
35     tag)
36       BTR="tags"
37       ;;
38     release)
39       BTR="releases"
40       ;;
41     help)
42       usage
43       ;;
44     *)
45       echo " "
46       echo "**** "
47       echo "**** First parameter must be branch tag or release"
48       echo "**** "
49       echo " "
50       usage
51    esac
52 }
53
54 # Check a parameter is set
55 #
56 # par 1: Name of parameter
57 # par 2: value
58 #
59 check() {
60   if [ "${2}x" = "x" ]
61   then
62     echo " "
63     echo "**** "
64     echo "**** Parameter $1 is not set"
65     echo "**** "
66     echo " "
67     usage
68   fi
69 }
70
71 # ------------------------------------------------------------------
72 # copyproject - copy a single project
73 #
74 # par 1 - project name
75 # par 2 - destination
76 # par 3 - comment
77 # par 4 - source
78 # ------------------------------------------------------------------
79 copyproject() {
80   echo "copyproject $1 $2 from $4"
81   if [ "${1}" = "buildTools" ]
82   then
83     echo "build/$1 $SVNREPOSITORY/$1/$2" >> $SCTEMPFILE
84   elif [ "${1}" = "carddav" ]
85   then
86   elif [ "${1}" != "bedework" ]
87   then
88     echo "projects/$1 $SVNREPOSITORY/$1/$2" >> $SCTEMPFILE
89   fi
90   svn copy -m "$3" -rHEAD $SVNREPOSITORY/$1/$4 $SVNREPOSITORY/$1/$2
91 }
92
93 SOURCE="trunk"
94
95 if [ "${4}" = "from" ]
96 then
97   checkbranchtag "$5"
98   check "from-Name" "$6"
99   SOURCE=$BTR/$6
100 fi
101
102 checkbranchtag "$1"
103 check "Name" "$2"
104 check "Comment" "$3"
105
106 SVNREPOSITORY="https://www.bedework.org/svn"
107 TARGET="$BTR/$2"
108 COMMENT="$3"
109
110 PROJECTS=""
111 PROJECTS="$PROJECTS access"
112 PROJECTS="$PROJECTS bedework"
113 PROJECTS="$PROJECTS buildTools"
114 PROJECTS="$PROJECTS bwtools"
115 PROJECTS="$PROJECTS bwtzsvr"
116 PROJECTS="$PROJECTS caldav"
117 PROJECTS="$PROJECTS caldavTest"
118 PROJECTS="$PROJECTS calendarapi"
119 PROJECTS="$PROJECTS carddav"
120 PROJECTS="$PROJECTS contrib"
121 PROJECTS="$PROJECTS davutil"
122 PROJECTS="$PROJECTS dumprestore"
123 PROJECTS="$PROJECTS rpiutil"
124 PROJECTS="$PROJECTS testsuite"
125 PROJECTS="$PROJECTS webapps"
126 PROJECTS="$PROJECTS webdav"
127
128 SCTEMPDIR="${TMPDIR:=/tmp}/svncopydir$$"
129 SCTEMPFILE=$SCTEMPDIR/svncopy
130
131 mkdir $SCTEMPDIR
132
133 # Assure the file is removed at program termination
134 # or after we received a signal:
135 trap 'rm -rf "$SCTEMPDIR" >/dev/null 2>&1' 0
136 trap "exit 2" 1 2 3 15
137
138 for project in $PROJECTS
139 do
140    copyproject "$project" "$TARGET" "$COMMENT" "$SOURCE"
141 done
142
143 svn co -N $SVNREPOSITORY/bedework/$TARGET $SCTEMPDIR/bedework
144 svn propset svn:externals -F $SCTEMPFILE $SCTEMPDIR/bedework
145 svn commit -N -m "Change externals to new copies" $SCTEMPDIR/bedework
146
147 #more $SCTEMPFILE
Note: See TracBrowser for help on using the browser.