73 from optparse
import OptionParser
74 parser = OptionParser()
75 parser.add_option(
"--pre", action =
"store_true",
76 help =
"Create -pre tags instead of final tags.")
77 parser.add_option(
"-b",
"--branch",
78 help =
"Use the given (global) branch as source for the tags instead of the trunk")
79 opts, args = parser.parse_args()
81 opts.branch =
"/".join([
"branches",
"GAUDI", opts.branch])
85 url =
"svn+ssh://svn.cern.ch/reps/gaudi"
87 container =
"GaudiRelease"
90 tempdir = tempfile.mkdtemp()
97 pvers =
"%s_%s" % (proj.upper(), packages[container])
100 ptagdir =
"%s/tags/%s/%s" % (proj, proj.upper(), pvers)
102 svn(
"mkdir", ptagdir).wait()
103 for f
in [
"cmt",
"Makefile.cmt",
104 "Makefile-cmake.mk",
"cmake",
"CMakeLists.txt",
105 "configure",
"toolchain.cmake"]:
106 svn(
"cp",
"/".join([proj, opts.branch, f]),
"/".join([ptagdir, f])).wait()
109 tag_re = re.compile(
r"^v(\d+)r(\d+)(?:p(\d+))?$")
112 pktagdir =
"%s/tags/%s/%s" % (proj, p, tag)
116 make_tag = no_tag
or (opts.pre
and no_tag
and not svn_exists(pktagdir +
"-pre"))
120 svn(
"cp",
"/".join([proj, opts.branch, p]), pktagdir).wait()
122 tagElements = tag_re.match(tag)
124 tagElements =
"-".join([
"%02d" % int(el
or "0")
for el
in tagElements.groups() ])
125 pktagdir =
"%s/tags/%s/%s-%s" % (proj, p, p, tagElements)
126 svn(
"cp",
"/".join([proj, opts.branch, p]), pktagdir).wait()
129 svn(
"up",
"--depth=empty", pktagdir).wait()
135 pktagdir =
"%s/tags/%s/%s" % (proj, p, tag)
136 svn(
"cp", pktagdir,
"%s/%s" % (ptagdir, p)).wait()
141 shutil.rmtree(tempdir, ignore_errors =
True)