@@ -47,6 +47,7 @@ def note(self, msg):
4747
4848 def log (self , msg ):
4949 syslog .syslog (msg )
50+ self .stdout .write (msg )
5051 self .stderr .write (msg )
5152
5253 # --- svn ---
@@ -75,7 +76,11 @@ def create_svn(self, svn):
7576 self .log (msg )
7677 return msg
7778 err , out = self .svn_admin_cmd ("create" , svn )
78- return err
79+ if err :
80+ msg = "Error %s creating svn repository %s:\n %s" % (err , svn , out )
81+ self .log (msg )
82+ return msg
83+ return None
7984
8085 # --- trac ---
8186
@@ -137,12 +142,14 @@ def sync_default_repository(self, group, env):
137142 if repository :
138143 self .note (" Indexing default repository" )
139144 repository .sync ()
145+ else :
146+ self .log ("Trac environment '%s' does not have any repository" % env )
140147
141148 def create_trac (self , group ):
142149 if not os .path .exists (os .path .dirname (group .trac_dir )):
143150 msg = "Intended to create '%s', but parent directory is missing" % group .trac_dir
144151 self .log (msg )
145- return None
152+ return None , msg
146153 options = copy .deepcopy (settings .TRAC_ENV_OPTIONS )
147154 # Interpolate group field names to values in the option settings:
148155 for i in range (len (options )):
@@ -153,7 +160,7 @@ def create_trac(self, group):
153160 # custom pages and settings.
154161 if self .dummy_run :
155162 self .note ("Would create Trac for group '%s' at %s" % (group .acronym , group .trac_dir ))
156- return True
163+ return None , None
157164 else :
158165 try :
159166 self .note ("Creating Trac for group '%s' at %s" % (group .acronym , group .trac_dir ))
@@ -172,11 +179,11 @@ def create_trac(self, group):
172179 # Components (i.e., drafts) will be handled during components
173180 # update later
174181 # Permissions will be handled during permission update later.
175- return env
182+ return env , None
176183 except TracError as e :
177- self . log ( "While creating Trac instance for %s: %s" % (group , e ) )
178- raise
179- return None
184+ msg = "While creating Trac instance for %s: %s" % (group , e )
185+ self . log ( msg )
186+ return None , msg
180187
181188 def update_trac_permissions (self , group , env ):
182189 if self .dummy_run :
@@ -258,7 +265,7 @@ def add_custom_group_states(self, group, env):
258265
259266 def handle (self , * filenames , ** options ):
260267 self .verbosity = options ['verbosity' ]
261- self .errors = 0
268+ self .errors = []
262269 self .wiki_dir_pattern = options .get ('wiki_dir_pattern' , settings .TRAC_WIKI_DIR_PATTERN )
263270 self .svn_dir_pattern = options .get ('svn_dir_pattern' , settings .TRAC_SVN_DIR_PATTERN )
264271 self .group_list = options .get ('group_list' , None )
@@ -294,11 +301,13 @@ def handle(self, *filenames, **options):
294301
295302 if not os .path .exists (group .svn_dir ):
296303 err = self .create_svn (group .svn_dir )
297- self .errors += 1 if err else 0
304+ if err :
305+ self .errors .append (err )
298306
299307 if not os .path .exists (group .trac_dir ):
300- trac_env = self .create_trac (group )
301- self .errors += 1 if not trac_env else 0
308+ trac_env , msg = self .create_trac (group )
309+ if not trac_env :
310+ self .errors .append (msg )
302311 else :
303312 if not self .dummy_run :
304313 trac_env = Environment (group .trac_dir )
@@ -310,9 +319,9 @@ def handle(self, *filenames, **options):
310319 self .update_trac_components (group , trac_env )
311320
312321 except Exception as e :
313- self .errors += 1
322+ self .errors . append ( e )
314323 self .log ("While processing %s: %s" % (group .acronym , e ))
315324 raise
316325
317326 if self .errors :
318- raise CommandError ("There were %s failures in WG Trac creation, see syslog %s for details. " % (self .errors , logname ))
327+ raise CommandError ("There were %s failures in WG Trac creation: \n %s" % (len ( self .errors ), " \n " . join ( self . errors ) ))
0 commit comments