1- Class isc .git .GitLab
1+ Class isc .git .GitLab Extends isc . util . LogUtils
22{
33
44ClassMethod getDir () [ CodeMode = expression ]
@@ -18,11 +18,13 @@ ClassMethod load()
1818{
1919 try {
2020 set dir = ..getDir ()
21+ do ..executeHooks (.hooks , " before" )
22+
2123 do ..log (" Importing dir " _ dir )
2224 do $system .OBJ .ImportDir (dir , ..getExtWildcard (), " c" , .errors , 1 )
2325 throw :$get (errors ,0 )'=0 ##class (%Exception.General ).%New (" Load error" )
2426
25- do ..init ( )
27+ do ..executeHooks (. hooks , " after " )
2628
2729 $$$TOE(sc , ##class (isc.git.Settings ).setSetting (" commit" , ..getCommit ()))
2830
@@ -46,6 +48,8 @@ ClassMethod loadDiff()
4648 halt
4749 } else {
4850 set dir = ..getDir ()
51+ do ..executeHooks (.hooks , " before" )
52+
4953 set newCommit = ..getCommit ()
5054 do ..log (" Importing dir " _ dir )
5155 do ..log ($$$FormatText(" Loading diff between %1 and %2" , oldCommit , newCommit ))
@@ -69,13 +73,13 @@ ClassMethod loadDiff()
6973 // To-Do delete
7074 set deleteCode = ##class (isc.git.Settings ).getSetting (" delete" )
7175 if (($ll (deleted )>0 ) && (deleteCode '=" " )) {
72- do $classmethod ($p (deleteCode , " :" ), $p (deleteCode , " :" , 2 ))
76+ do $classmethod ($p (deleteCode , " :" ), $p (deleteCode , " :" , 2 ), deleted )
7377 }
7478
7579 throw :$$$ISERR(sc ) ##class (%Exception.StatusException ).CreateFromStatus (sc )
7680 throw :$get (errors ,0 )'=0 ##class (%Exception.General ).%New (" Load error" )
7781
78- do ..init ( )
82+ do ..executeHooks (. hooks , " after " )
7983
8084 $$$TOE(sc , ##class (isc.git.Settings ).setSetting (" commit" , ..getCommit ()))
8185
@@ -88,14 +92,20 @@ ClassMethod loadDiff()
8892 }
8993}
9094
91- ClassMethod init ( )
95+ ClassMethod executeHooks ( Output hooks As %String , method As %String ( VALUELIST = " ,before,after,rollback " ) )
9296{
93- set init = ##class (isc.git.Settings ).getSetting (" init" )
94- if (init '=" " ) {
95- do ..log (" Running init code: " _ init )
96- do $classmethod ($p (init , " :" ), $p (init , " :" , 2 ))
97+ set hooksDir = ##class (isc.git.Settings ).getSetting (" hooks" )
98+ if (hooksDir '=" " ) {
99+ do ..log (" Running init hooks: " _ method )
100+
101+ if method = " before" {
102+ set dir = ..getDir ()
103+ $$$TOE(sc , ##class (isc.git.hook.Manager ).execute (dir _ hooksDir , .hooks , " before" ))
104+ } elseif method = " after" {
105+ $$$TOE(sc , ##class (isc.git.hook.Manager ).execute (, .hooks , " after" ))
106+ }
97107 } else {
98- do ..log (" No init code " )
108+ do ..log (" No hooks " )
99109 }
100110}
101111
@@ -190,33 +200,5 @@ If you are not redirected automatically, follow this <a href='!!!'>link to tests
190200</html >
191201}
192202
193- ClassMethod logVar (var = " " , name As %String = " " ) As %String
194- {
195- do ..log (" Variable " _ name )
196- zw var
197- /*if $isObject(var) {
198- zw var
199- } elseif $listValid(var) {
200- write $lts(var, ", ")
201- } else {
202- write var
203- }*/
204- }
205-
206- ClassMethod logException (ex As %Exception .AbstractException )
207- {
208- do ..logStatus (ex .AsStatus ())
209- }
210-
211- ClassMethod logStatus (sc As %Status )
212- {
213- do ..log ($System .Status .GetErrorText (sc ))
214- }
215-
216- ClassMethod log (msg As %String )
217- {
218- write !, $$$FormatText(" [%1] %2" , $zdatetime ($ztimestamp , 3 , 1 , 3 ), msg ), !
219- }
220-
221203}
222204
0 commit comments