diff --git a/connector/docker.go b/connector/docker.go index 86a835b..0f51a3f 100644 --- a/connector/docker.go +++ b/connector/docker.go @@ -11,6 +11,8 @@ import ( api "github.com/fsouza/go-dockerclient" ) +func init() { enabled["docker"] = NewDocker } + type Docker struct { client *api.Client containers map[string]*container.Container diff --git a/connector/enabled_darwin.go b/connector/enabled_darwin.go deleted file mode 100644 index d68c6c6..0000000 --- a/connector/enabled_darwin.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build !linux - -package connector - -var enabled = map[string]func() Connector{ - "docker": NewDocker, -} diff --git a/connector/enabled_linux.go b/connector/enabled_linux.go deleted file mode 100644 index 76e3bab..0000000 --- a/connector/enabled_linux.go +++ /dev/null @@ -1,8 +0,0 @@ -// +build !darwin - -package connector - -var enabled = map[string]func() Connector{ - "docker": NewDocker, - "runc": NewRunc, -} diff --git a/connector/main.go b/connector/main.go index dfc6f00..c19c1de 100644 --- a/connector/main.go +++ b/connector/main.go @@ -7,7 +7,10 @@ import ( "github.com/bcicen/ctop/logging" ) -var log = logging.Init() +var ( + log = logging.Init() + enabled = make(map[string]func() Connector) +) func ByName(s string) (Connector, error) { if _, ok := enabled[s]; !ok { diff --git a/connector/mock.go b/connector/mock.go index a842754..bfa30d1 100644 --- a/connector/mock.go +++ b/connector/mock.go @@ -14,11 +14,13 @@ import ( "github.com/nu7hatch/gouuid" ) +func init() { enabled["mock"] = NewMock } + type Mock struct { containers container.Containers } -func NewMock() *Mock { +func NewMock() Connector { cs := &Mock{} go cs.Init() go cs.Loop() diff --git a/connector/runc.go b/connector/runc.go index b829323..1320a40 100644 --- a/connector/runc.go +++ b/connector/runc.go @@ -17,6 +17,8 @@ import ( "github.com/opencontainers/runc/libcontainer/cgroups/systemd" ) +func init() { enabled["runc"] = NewRunc } + type RuncOpts struct { root string // runc root path systemdCgroups bool // use systemd cgroups