root/releases/bedework-3.4.1.1a/util/svncopy.sh

Revision 1902 (checked in by douglm, 5 years ago)

Fix small iSchedule bug

Change location of repository

Fix config version number

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 to a new location and adjust the "
7   echo "svn:externals property to refer to the new copies"
8   echo " "
9   echo " $0 help"
10   echo " $0 (branch | tag | release) name comment-text"
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 # ------------------------------------------------------------------
78 copyproject() {
79   echo "copyproject $1 $2"
80   if [ "${1}" != "bedework" ]
81   then
82     echo "projects/$1 $SVNREPOSITORY/$1/$2" >> $SCTEMPFILE
83   fi
84   svn copy -m "$3" -rHEAD $SVNREPOSITORY/$1/trunk $SVNREPOSITORY/$1/$2
85 }
86
87 checkbranchtag "$1"
88 check "Name" "$2"
89 check "Comment" "$3"
90
91 SVNREPOSITORY="https://www.bedework.org"
92 TARGET="$BTR/$2"
93 COMMENT="$3"
94
95 PROJECTS=""
96 PROJECTS="$PROJECTS access"
97 PROJECTS="$PROJECTS bedework"
98 PROJECTS="$PROJECTS bwtools"
99 PROJECTS="$PROJECTS caldav"
100 PROJECTS="$PROJECTS caldavTest"
101 PROJECTS="$PROJECTS calendarapi"
102 PROJECTS="$PROJECTS contrib"
103 PROJECTS="$PROJECTS davutil"
104 PROJECTS="$PROJECTS dumprestore"
105 PROJECTS="$PROJECTS freebusy"
106 PROJECTS="$PROJECTS rpiutil"
107 PROJECTS="$PROJECTS synchml"
108 PROJECTS="$PROJECTS testsuite"
109 PROJECTS="$PROJECTS timezones"
110 PROJECTS="$PROJECTS webapps"
111 PROJECTS="$PROJECTS webdav"
112
113 SCTEMPDIR="${TMPDIR:=/tmp}/svncopydir$$"
114 SCTEMPFILE=$SCTEMPDIR/svncopy
115
116 mkdir $SCTEMPDIR
117
118 # Assure the file is removed at program termination
119 # or after we received a signal:
120 trap 'rm -rf "$SCTEMPDIR" >/dev/null 2>&1' 0
121 trap "exit 2" 1 2 3 15
122
123 for project in $PROJECTS
124 do
125    copyproject "$project" "$TARGET" "$COMMENT"
126 done
127
128 svn co -N $SVNREPOSITORY/bedework/$TARGET $SCTEMPDIR/bedework
129 svn propset svn:externals -F $SCTEMPFILE $SCTEMPDIR/bedework
130 svn commit -N -m "Change externals to new copies" $SCTEMPDIR/bedework
131 #more $SCTEMPFILE
Note: See TracBrowser for help on using the browser.