@@ -22,12 +22,20 @@ const (
22
22
// RevelImportPath Revel framework import path
23
23
RevelImportPath = "github.com/revel/revel"
24
24
)
25
+ const (
26
+ // Called when templates are going to be refreshed (receivers are registered template engines added to the template.engine conf option)
27
+ TEMPLATE_REFRESH = iota
28
+ // Called when templates are refreshed (receivers are registered template engines added to the template.engine conf option)
29
+ TEMPLATE_REFRESH_COMPLETE
25
30
31
+ )
26
32
type revelLogs struct {
27
33
c gocolorize.Colorize
28
34
w io.Writer
29
35
}
30
36
37
+ type EventHandler func (typeOf int , value interface {}) (responseOf int )
38
+
31
39
func (r * revelLogs ) Write (p []byte ) (n int , err error ) {
32
40
return r .w .Write ([]byte (r .c .Paint (string (p ))))
33
41
}
@@ -111,6 +119,7 @@ var (
111
119
// Private
112
120
secretKey []byte // Key used to sign cookies. An empty key disables signing.
113
121
packaged bool // If true, this is running from a pre-built package.
122
+ initEventList = []EventHandler {} // Event handler list for receiving events
114
123
)
115
124
116
125
// Init initializes Revel -- it provides paths for getting around the app.
@@ -230,6 +239,25 @@ func Init(mode, importPath, srcPath string) {
230
239
INFO .Printf ("Initialized Revel v%s (%s) for %s" , Version , BuildDate , MinimumGoVersion )
231
240
}
232
241
242
+ // Fires system events from revel
243
+ func fireEvent (key int , value interface {}) (response int ) {
244
+ for _ , handler := range initEventList {
245
+ response |= handler (key , value )
246
+ }
247
+ return
248
+ }
249
+
250
+ // Add event handler to listen for all system events
251
+ func AddInitEventHandler (handler EventHandler ) {
252
+ initEventList = append (initEventList , handler )
253
+ return
254
+ }
255
+
256
+ func SetSecretKey (newKey []byte ) error {
257
+ secretKey = newKey
258
+ return nil
259
+ }
260
+
233
261
// Create a logger using log.* directives in app.conf plus the current settings
234
262
// on the default logger.
235
263
func getLogger (name string ) * log.Logger {
0 commit comments