omit runc connector from darwin build

This commit is contained in:
Bradley Cicenas 2017-06-14 13:11:40 +00:00
parent e59a360b60
commit 617b1b2863
9 changed files with 41 additions and 29 deletions

View File

@ -1,3 +1,5 @@
// +build !darwin
package collector
import (

View File

@ -1,3 +1,5 @@
// +build !darwin
package collector
import (

View File

@ -1,4 +1,3 @@
// +build ignore
package connector
import (

View File

@ -0,0 +1,7 @@
// +build !linux
package connector
var enabled = map[string]func() Connector{
"docker": NewDocker,
}

View File

@ -0,0 +1,8 @@
// +build !darwin
package connector
var enabled = map[string]func() Connector{
"docker": NewDocker,
"runc": NewRunc,
}

View File

@ -1,12 +1,25 @@
package connector
import (
"fmt"
"github.com/bcicen/ctop/container"
"github.com/bcicen/ctop/logging"
)
var log = logging.Init()
func ByName(s string) (Connector, error) {
if _, ok := enabled[s]; !ok {
msg := fmt.Sprintf("invalid connector type \"%s\"\nconnector must be one of:", s)
for k, _ := range enabled {
msg += fmt.Sprintf("\n %s", k)
}
return nil, fmt.Errorf(msg)
}
return enabled[s](), nil
}
type Connector interface {
All() container.Containers
Get(string) (*container.Container, bool)

View File

@ -1,3 +1,5 @@
// +build !darwin
package connector
import (

View File

@ -8,11 +8,6 @@ import (
ui "github.com/gizak/termui"
)
var enabledConnectors = map[string]func() connector.Connector{
"docker": connector.NewDocker,
"runc": connector.NewRunc,
}
type GridCursor struct {
selectedID string // id of currently selected container
filtered container.Containers
@ -20,12 +15,6 @@ type GridCursor struct {
isScrolling bool // toggled when actively scrolling
}
func NewGridCursor(connectorName string) *GridCursor {
return &GridCursor{
cSource: enabledConnectors[connectorName](),
}
}
func (gc *GridCursor) Len() int { return len(gc.filtered) }
func (gc *GridCursor) Selected() *container.Container {

24
main.go
View File

@ -4,9 +4,9 @@ import (
"flag"
"fmt"
"os"
"strings"
"github.com/bcicen/ctop/config"
"github.com/bcicen/ctop/connector"
"github.com/bcicen/ctop/container"
"github.com/bcicen/ctop/cwidgets/compact"
"github.com/bcicen/ctop/logging"
@ -41,8 +41,6 @@ func main() {
var connectorFlag = flag.String("connector", "docker", "container connector to use")
flag.Parse()
validConnector(*connectorFlag)
if *versionFlag {
fmt.Println(versionStr)
os.Exit(0)
@ -88,7 +86,11 @@ func main() {
defer Shutdown()
// init grid, cursor, header
cursor = NewGridCursor(*connectorFlag)
conn, err := connector.ByName(*connectorFlag)
if err != nil {
panic(err)
}
cursor = &GridCursor{cSource: conn}
cGrid = compact.NewCompactGrid()
header = widgets.NewCTopHeader()
@ -108,18 +110,6 @@ func Shutdown() {
}
}
func validConnector(s string) {
if _, ok := enabledConnectors[s]; !ok {
fmt.Printf("invalid connector type: %s\n", s)
var connectors []string
for k, _ := range enabledConnectors {
connectors = append(connectors, k)
}
fmt.Printf("connector must be one of: %s\n", strings.Join(connectors, ","))
os.Exit(1)
}
}
// ensure a given sort field is valid
func validSort(s string) {
if _, ok := container.Sorters[s]; !ok {
@ -131,7 +121,7 @@ func validSort(s string) {
func panicExit() {
if r := recover(); r != nil {
Shutdown()
fmt.Printf("panic: %s\n", r)
fmt.Printf("error: %s\n", r)
os.Exit(1)
}
}