Made the information pulling time dynamic

pull/127/head
mjarkk 5 years ago
parent 0e81129024
commit fd4d4a1dc6
No known key found for this signature in database
GPG Key ID: 147D0BE9258C6C95

@ -13,7 +13,7 @@ Changes to the user config will only take place after closing and re-opening laz
## Default:
```
```yml
gui:
scrollHeight: 2
theme:
@ -53,6 +53,9 @@ oS:
openCommand: open {{filename}}
openLinkCommand: open {{link}}
update:
refreshProjectTime: 100ms
refreshContainersAndServicesTime: 100ms
refreshVolumesTime: 100ms
method: never
stats:
graphs:

@ -53,8 +53,7 @@ type UserConfig struct {
// OS determines what defaults are set for opening files and links
OS OSConfig `yaml:"oS,omitempty"`
// Update is currently not being used, but like lazydocker, it may be used down
// the line to help you update automatically.
// UpdateConfig determines what the default settings are for updating the ui
Update UpdateConfig `yaml:"update,omitempty"`
// Stats determines how long lazydocker will gather container stats for, and
@ -191,10 +190,21 @@ type OSConfig struct {
OpenLinkCommand string `yaml:"openLinkCommand,omitempty"`
}
// UpdateConfig is currently not being used, but may be used down the line to
// allow for automatic updates
// UpdateConfig determines what the default settings are for updating the ui
//
// For the RefreshProjectTime, RefreshContainersAndServicesTime and RefreshVolumesTime
// the application expects a valid duration like: 100ms, 2s, 200ns
// for docs see: https://golang.org/pkg/time/#ParseDuration
type UpdateConfig struct {
Method string `yaml:"method,omitempty"`
// RefreshProjectTime determines the time betweens updates of the project panel
RefreshProjectTime string `yaml:"refreshProjectTime,omitempty"`
// RefreshContainersAndServicesTime determines the time betweens updates of the containers and services panel
RefreshContainersAndServicesTime string `yaml:"refreshContainersAndServicesTime,omitempty"`
// RefreshVolumesTime determines the time betweens updates of the volumes panel
RefreshVolumesTime string `yaml:"refreshVolumesTime,omitempty"`
Method string `yaml:"method,omitempty"`
}
// GraphConfig specifies how to make a graph of recorded container stats
@ -346,7 +356,10 @@ func GetDefaultConfig() UserConfig {
},
OS: GetPlatformDefaultConfig(),
Update: UpdateConfig{
Method: "never",
RefreshProjectTime: "100ms",
RefreshContainersAndServicesTime: "100ms",
RefreshVolumesTime: "100ms",
Method: "never",
},
Stats: StatsConfig{
MaxDuration: duration,

@ -267,13 +267,34 @@ func (gui *Gui) Run() error {
gui.waitForIntro.Add(1)
}
updates := gui.Config.UserConfig.Update
projectDuration := time.Millisecond * 100
containersAndServicesDuration := time.Millisecond * 100
volumesDuration := time.Millisecond * 100
toBind := []struct {
BindTo *time.Duration
Value string
}{
{&projectDuration, updates.RefreshProjectTime},
{&containersAndServicesDuration, updates.RefreshContainersAndServicesTime},
{&volumesDuration, updates.RefreshVolumesTime},
}
for _, item := range toBind {
duration, err := time.ParseDuration(item.Value)
if err == nil {
*item.BindTo = duration
continue
}
gui.Log.Error("Can't parse duration:", err)
}
go func() {
gui.waitForIntro.Wait()
gui.goEvery(time.Millisecond*50, gui.renderAppStatus)
gui.goEvery(time.Millisecond*30, gui.reRenderMain)
gui.goEvery(time.Millisecond*100, gui.refreshProject)
gui.goEvery(time.Millisecond*100, gui.refreshContainersAndServices)
gui.goEvery(time.Millisecond*100, gui.refreshVolumes)
gui.goEvery(projectDuration, gui.refreshProject)
gui.goEvery(containersAndServicesDuration, gui.refreshContainersAndServices)
gui.goEvery(volumesDuration, gui.refreshVolumes)
gui.goEvery(time.Millisecond*1000, gui.DockerCommand.UpdateContainerDetails)
gui.goEvery(time.Millisecond*1000, gui.checkForContextChange)
}()

Loading…
Cancel
Save