77from watchdog .observers import Observer
88from watchdog .events import FileSystemEventHandler
99from .loader import load_node
10- from .git import GitRepo
1110from .broker import BrokerClient
1211from solid_node .core .refactor import RefactorRequest
1312from solid_node .node .base import StlRenderStart
@@ -22,7 +21,6 @@ def __init__(self, path):
2221 super ().__init__ ()
2322 self .path = path
2423
25- self .repo = GitRepo (path )
2624 self .file_changed = Future ()
2725 self .observer = Observer ()
2826
@@ -35,39 +33,38 @@ async def _start(self):
3533 logger .info ('START' )
3634 self .broker = BrokerClient ()
3735
38- async with self .repo .async_lock ('BUILDER' ):
39- try :
40- self .node = load_node (self .path )
41- except Exception as e :
42- error_message = traceback .format_exc ()
43- logger .error (error_message )
44- await self .rollback (error_message )
45- sys .exit (0 )
46-
47- try :
48- self .node .assemble ()
49- except RefactorRequest as request :
50- await self .execute_refactor (request )
51- except Exception as e :
52- error_message = traceback .format_exc ()
53- logger .error (error_message )
54- await self .rollback (error_message )
55- sys .exit (0 )
56-
57- for path in self .node .files :
58- self .observer .schedule (self , path , recursive = False )
59-
60- self .observer .start ()
61-
62- try :
63- await self .generate_stl ()
64- except RefactorRequest as request :
65- await self .execute_refactor (request )
66- except Exception as e :
67- error_message = traceback .format_exc ()
68- logger .error (error_message )
69- await self .rollback (error_message )
70- sys .exit (0 )
36+ try :
37+ self .node = load_node (self .path )
38+ except Exception as e :
39+ error_message = traceback .format_exc ()
40+ logger .error (error_message )
41+ await self .report_error (error_message )
42+ sys .exit (0 )
43+
44+ try :
45+ self .node .assemble ()
46+ except RefactorRequest as request :
47+ await self .execute_refactor (request )
48+ except Exception as e :
49+ error_message = traceback .format_exc ()
50+ logger .error (error_message )
51+ await self .report_error (error_message )
52+ sys .exit (0 )
53+
54+ for path in self .node .files :
55+ self .observer .schedule (self , path , recursive = False )
56+
57+ self .observer .start ()
58+
59+ try :
60+ await self .generate_stl ()
61+ except RefactorRequest as request :
62+ await self .execute_refactor (request )
63+ except Exception as e :
64+ error_message = traceback .format_exc ()
65+ logger .error (error_message )
66+ await self .report_error (error_message )
67+ sys .exit (0 )
7168
7269 await self .file_changed
7370 sys .exit (0 )
@@ -79,7 +76,7 @@ async def execute_refactor(self, request):
7976 except Exception as e :
8077 error_message = traceback .format_exc ()
8178 logger .error (error_message )
82- await self .rollback (f"Could not execute refactor\n \n { error_message } " )
79+ await self .report_error (f"Could not execute refactor\n \n { error_message } " )
8380
8481 async def generate_stl (self ):
8582 try :
@@ -91,12 +88,12 @@ async def generate_stl(self):
9188 logger .info (f"{ job .stl_file } done!" )
9289 sys .exit (0 )
9390
94- async def rollback (self , error_message ):
91+ async def report_error (self , error_message ):
9592 await self .broker .put ('build_error' , {
9693 'error' : error_message ,
9794 'tstamp' : time .time (),
9895 })
99- self .repo . revert_last_commit ()
96+ await self .file_changed
10097 sys .exit (0 )
10198
10299 def on_modified (self , event ):
0 commit comments