Refactor bootstrap so it's decoupled from main function
This commit is contained in:
24
api.go
24
api.go
@@ -1,12 +1,34 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/play-with-docker/play-with-docker/config"
|
"github.com/play-with-docker/play-with-docker/config"
|
||||||
|
"github.com/play-with-docker/play-with-docker/docker"
|
||||||
|
"github.com/play-with-docker/play-with-docker/event"
|
||||||
"github.com/play-with-docker/play-with-docker/handlers"
|
"github.com/play-with-docker/play-with-docker/handlers"
|
||||||
|
"github.com/play-with-docker/play-with-docker/storage"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
config.ParseFlags()
|
config.ParseFlags()
|
||||||
handlers.Bootstrap()
|
handlers.Bootstrap(initStorage, initEvent, initFactory)
|
||||||
handlers.Register()
|
handlers.Register()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initStorage() storage.StorageApi {
|
||||||
|
s, err := storage.NewFileStorage(config.SessionsFile)
|
||||||
|
if err != nil && !os.IsNotExist(err) {
|
||||||
|
log.Fatal("Error initializing StorageAPI: ", err)
|
||||||
|
}
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
func initEvent() event.EventApi {
|
||||||
|
return event.NewLocalBroker()
|
||||||
|
}
|
||||||
|
|
||||||
|
func initFactory(s storage.StorageApi) docker.FactoryApi {
|
||||||
|
return docker.NewLocalCachedFactory(s)
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,15 +25,13 @@ var core pwd.PWDApi
|
|||||||
var e event.EventApi
|
var e event.EventApi
|
||||||
var ws *socketio.Server
|
var ws *socketio.Server
|
||||||
|
|
||||||
func Bootstrap() {
|
func Bootstrap(storageInit func() storage.StorageApi, eventInit func() event.EventApi, factoryInit func(storage.StorageApi) docker.FactoryApi) {
|
||||||
s, err := storage.NewFileStorage(config.SessionsFile)
|
s := storageInit()
|
||||||
e = event.NewLocalBroker()
|
|
||||||
|
|
||||||
f := docker.NewLocalCachedFactory(s)
|
e = eventInit()
|
||||||
|
|
||||||
|
f := factoryInit(s)
|
||||||
|
|
||||||
if err != nil && !os.IsNotExist(err) {
|
|
||||||
log.Fatal("Error initializing StorageAPI: ", err)
|
|
||||||
}
|
|
||||||
core = pwd.NewPWD(f, e, s)
|
core = pwd.NewPWD(f, e, s)
|
||||||
|
|
||||||
sch, err := scheduler.NewScheduler(s, e, core)
|
sch, err := scheduler.NewScheduler(s, e, core)
|
||||||
|
|||||||
Reference in New Issue
Block a user