Merge pull request #210 from bcicen/fix-config-encoding

Fix config encoding
This commit is contained in:
bradley 2020-10-26 09:04:07 -04:00 committed by GitHub
commit 5b2d180f60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 49 additions and 20 deletions

View File

@ -72,7 +72,7 @@ Option | Description
`-s` | select initial container sort field
`-scale-cpu` | show cpu as % of system total
`-v` | output version information and exit
`-shell` | specify shell (default: sh)
`-shell` | exec shell to use (default: sh)
### Keybindings

View File

@ -90,6 +90,13 @@ func Write() (path string, err error) {
}
}
// remove prior to writing new file
if err := os.Remove(path); err != nil {
if !os.IsNotExist(err) {
return path, err
}
}
file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
return path, fmt.Errorf("failed to open config for writing: %s", err)

View File

@ -1,5 +1,9 @@
package manager
import "errors"
var ActionNotImplErr = errors.New("action not implemented")
type Manager interface {
Start() error
Stop() error

View File

@ -7,29 +7,29 @@ func NewMock() *Mock {
}
func (m *Mock) Start() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Stop() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Remove() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Pause() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Unpause() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Restart() error {
return nil
return ActionNotImplErr
}
func (m *Mock) Exec(cmd []string) error {
return nil
return ActionNotImplErr
}

View File

@ -7,29 +7,29 @@ func NewRunc() *Runc {
}
func (rc *Runc) Start() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Stop() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Remove() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Pause() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Unpause() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Restart() error {
return nil
return ActionNotImplErr
}
func (rc *Runc) Exec(cmd []string) error {
return nil
return ActionNotImplErr
}

View File

@ -32,11 +32,11 @@ func (cs *Mock) Init() {
rand.Seed(int64(time.Now().Nanosecond()))
for i := 0; i < 4; i++ {
cs.makeContainer(3)
cs.makeContainer(3, true)
}
for i := 0; i < 16; i++ {
cs.makeContainer(1)
cs.makeContainer(1, false)
}
}
@ -50,12 +50,28 @@ func (cs *Mock) Wait() struct{} {
return <-ch
}
func (cs *Mock) makeContainer(aggression int64) {
var healthStates = []string{"starting", "healthy", "unhealthy"}
func (cs *Mock) makeContainer(aggression int64, health bool) {
collector := collector.NewMock(aggression)
manager := manager.NewMock()
c := container.New(makeID(), collector, manager)
c.SetMeta("name", makeName())
c.SetState(makeState())
if health {
var i int
c.SetMeta("health", healthStates[i])
go func() {
for {
i++
if i >= len(healthStates) {
i = 0
}
c.SetMeta("health", healthStates[i])
time.Sleep(12 * time.Second)
}
}()
}
cs.containers = append(cs.containers, c)
}

View File

@ -46,7 +46,7 @@ func main() {
invertFlag = flag.Bool("i", false, "invert default colors")
scaleCpu = flag.Bool("scale-cpu", false, "show cpu as % of system total")
connectorFlag = flag.String("connector", "docker", "container connector to use")
defaultShell = flag.String("shell", "", "default shell")
defaultShell = flag.String("shell", "sh", "exec shell to use")
)
flag.Parse()
@ -65,7 +65,9 @@ func main() {
// init global config and read config file if exists
config.Init()
config.Read()
if err := config.Read(); err != nil {
log.Warningf("reading config: %s", err)
}
// override default config values with command line flags
if *filterFlag != "" {