-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathservice_provider.go
40 lines (32 loc) · 1017 Bytes
/
service_provider.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package console
import (
"github.com/goal-web/console/inputs"
"github.com/goal-web/contracts"
)
type Provider func(application contracts.Application) contracts.Console
type serviceProvider struct {
ConsoleProvider Provider
app contracts.Application
}
func NewService(provider Provider) contracts.ServiceProvider {
return &serviceProvider{ConsoleProvider: provider}
}
func (provider *serviceProvider) Register(application contracts.Application) {
provider.app = application
application.Singleton("console", func() contracts.Console {
console := provider.ConsoleProvider(application)
console.Schedule(console.GetSchedule())
return console
})
application.Singleton("scheduling", func(console contracts.Console) contracts.Schedule {
return console.GetSchedule()
})
application.Singleton("console.input", func() contracts.ConsoleInput {
return inputs.NewOSArgsInput()
})
}
func (provider *serviceProvider) Start() error {
return nil
}
func (provider *serviceProvider) Stop() {
}