Files
play-with-docker/handlers/bootstrap.go
Jonathan Leibiusky @xetorthio e9911abf94 Storage has now it's own package.
Remove global `sessions` map and use configured storage.
Add a `types` package so both `pwd` and `storage` can access without
circular dependencies.
Now the session is prepared when requested and not on load.
2017-06-15 16:09:41 -03:00

40 lines
786 B
Go

package handlers
import (
"log"
"os"
"github.com/docker/docker/client"
"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/pwd"
"github.com/play-with-docker/play-with-docker/storage"
)
var core pwd.PWDApi
var Broadcast pwd.BroadcastApi
func Bootstrap() {
c, err := client.NewEnvClient()
if err != nil {
log.Fatal(err)
}
d := docker.NewDocker(c)
Broadcast, err = pwd.NewBroadcast(WS, WSError)
if err != nil {
log.Fatal(err)
}
t := pwd.NewScheduler(Broadcast, d)
s, err := storage.NewFileStorage(config.SessionsFile)
if err != nil && !os.IsNotExist(err) {
log.Fatal("Error decoding sessions from disk ", err)
}
core = pwd.NewPWD(d, t, Broadcast, s)
}