Changes as requested per review

This commit is contained in:
glendsoza 2022-01-17 19:24:32 +05:30
parent 600e4af8e6
commit 4d90a0345f
8 changed files with 51 additions and 25 deletions

View file

@ -99,26 +99,22 @@ func (gui *Gui) renderContainerEnv(container *commands.Container) error {
mainView.Autoscroll = false mainView.Autoscroll = false
mainView.Wrap = gui.Config.UserConfig.Gui.WrapMainPanel mainView.Wrap = gui.Config.UserConfig.Gui.WrapMainPanel
envVariablesList := [][]string{} envVariablesList := [][]string{}
renderedTable := gui.Tr.NothingToDisplay
if len(container.Details.Config.Env) > 0 { if len(container.Details.Config.Env) > 0 {
var err error
for _, env := range container.Details.Config.Env { for _, env := range container.Details.Config.Env {
splitEnv := strings.Split(env, "=") splitEnv := strings.SplitN(env, "=", 2)
// if the value has = in it, lets say export "test=foo=bar" then split will result in the following
// {"test", "foo","bar"} hence join all the elements in the slice except the first one to get value
envVariablesList = append(envVariablesList, envVariablesList = append(envVariablesList,
[]string{ []string{
utils.ColoredString(splitEnv[0]+":", color.FgBlue), utils.ColoredString(splitEnv[0]+":", color.FgGreen),
utils.ColoredString(strings.Join(splitEnv[1:], "="), color.FgYellow), utils.ColoredString(splitEnv[1], color.FgYellow),
}) })
} }
} else { renderedTable, err = utils.RenderTable(envVariablesList)
envVariablesList = append(envVariablesList, []string{"Nothing to display"})
}
renderedTable, err := utils.RenderTable(envVariablesList)
// in case of some error
if err != nil { if err != nil {
// log the error
gui.Log.Error(err) gui.Log.Error(err)
renderedTable = "Something went wrong while displaying environment variables" renderedTable = gui.Tr.CannotDisplayEnvVairables
}
} }
return gui.T.NewTask(func(stop chan struct{}) { return gui.T.NewTask(func(stop chan struct{}) {
gui.renderString(gui.g, "main", renderedTable) gui.renderString(gui.g, "main", renderedTable)

View file

@ -15,11 +15,16 @@ import (
// list panel functions // list panel functions
func (gui *Gui) getServiceContexts() []string { func (gui *Gui) getServiceContexts() []string {
return []string{"logs", "stats", "container-config", "top"} return []string{"logs", "stats", "container-env", "container-config", "top"}
} }
func (gui *Gui) getServiceContextTitles() []string { func (gui *Gui) getServiceContextTitles() []string {
return []string{gui.Tr.LogsTitle, gui.Tr.StatsTitle, gui.Tr.ContainerConfigTitle, gui.Tr.TopTitle} return []string{
gui.Tr.LogsTitle,
gui.Tr.StatsTitle,
gui.Tr.ContainerEnvTitle,
gui.Tr.ContainerConfigTitle,
gui.Tr.TopTitle}
} }
func (gui *Gui) getSelectedService() (*commands.Service, error) { func (gui *Gui) getSelectedService() (*commands.Service, error) {
@ -73,6 +78,13 @@ func (gui *Gui) handleServiceSelect(g *gocui.Gui, v *gocui.View) error {
if err := gui.renderServiceStats(service); err != nil { if err := gui.renderServiceStats(service); err != nil {
return err return err
} }
case "container-env":
if service.Container == nil {
return gui.renderString(gui.g, "main", gui.Tr.NoContainer)
}
if err := gui.renderContainerEnv(service.Container); err != nil {
return err
}
case "container-config": case "container-config":
if service.Container == nil { if service.Container == nil {
return gui.renderString(gui.g, "main", gui.Tr.NoContainer) return gui.renderString(gui.g, "main", gui.Tr.NoContainer)

View file

@ -70,6 +70,9 @@ func dutchSet() TranslationSet {
StatsTitle: "Stats", StatsTitle: "Stats",
CreditsTitle: "Over", CreditsTitle: "Over",
ContainerConfigTitle: "Container Configuratie", ContainerConfigTitle: "Container Configuratie",
ContainerEnvTitle: "Container Env",
NothingToDisplay: "Nothing to display",
CannotDisplayEnvVairables: "Something went wrong while displaying environment variables",
NoContainers: "Geen containers", NoContainers: "Geen containers",
NoContainer: "Geen container", NoContainer: "Geen container",

View file

@ -90,6 +90,9 @@ type TranslationSet struct {
StatsTitle string StatsTitle string
CreditsTitle string CreditsTitle string
ContainerConfigTitle string ContainerConfigTitle string
ContainerEnvTitle string
NothingToDisplay string
CannotDisplayEnvVairables string
No string No string
Yes string Yes string
@ -173,6 +176,9 @@ func englishSet() TranslationSet {
StatsTitle: "Stats", StatsTitle: "Stats",
CreditsTitle: "About", CreditsTitle: "About",
ContainerConfigTitle: "Container Config", ContainerConfigTitle: "Container Config",
ContainerEnvTitle: "Container Env",
NothingToDisplay: "Nothing to display",
CannotDisplayEnvVairables: "Something went wrong while displaying environment variables",
NoContainers: "No containers", NoContainers: "No containers",
NoContainer: "No container", NoContainer: "No container",

View file

@ -69,6 +69,9 @@ func germanSet() TranslationSet {
StatsTitle: "Statistiken", StatsTitle: "Statistiken",
CreditsTitle: "Über Uns", CreditsTitle: "Über Uns",
ContainerConfigTitle: "Container Konfiguration", ContainerConfigTitle: "Container Konfiguration",
ContainerEnvTitle: "Container Env",
NothingToDisplay: "Nothing to display",
CannotDisplayEnvVairables: "Something went wrong while displaying environment variables",
NoContainers: "Keine Container", NoContainers: "Keine Container",
NoContainer: "Kein Container", NoContainer: "Kein Container",

View file

@ -69,6 +69,9 @@ func polishSet() TranslationSet {
StatsTitle: "Staty", StatsTitle: "Staty",
CreditsTitle: "O", CreditsTitle: "O",
ContainerConfigTitle: "Konfiguracja kontenera", ContainerConfigTitle: "Konfiguracja kontenera",
ContainerEnvTitle: "Container Env",
NothingToDisplay: "Nothing to display",
CannotDisplayEnvVairables: "Something went wrong while displaying environment variables",
NoContainers: "Brak kontenerów", NoContainers: "Brak kontenerów",
NoContainer: "Brak kontenera", NoContainer: "Brak kontenera",

View file

@ -69,6 +69,9 @@ func turkishSet() TranslationSet {
StatsTitle: "Durumlar", StatsTitle: "Durumlar",
CreditsTitle: "Hakkinda", CreditsTitle: "Hakkinda",
ContainerConfigTitle: "Konteyner Ayar", ContainerConfigTitle: "Konteyner Ayar",
ContainerEnvTitle: "Konteyner Env",
NothingToDisplay: "Nothing to display",
CannotDisplayEnvVairables: "Something went wrong while displaying environment variables",
NoContainers: "Konteynerler yok", NoContainers: "Konteynerler yok",
NoContainer: "Konteyner yok", NoContainer: "Konteyner yok",

View file

@ -165,9 +165,9 @@ func renderDisplayableList(items []Displayable, config RenderListConfig) (string
// RenderTable takes an array of string arrays and returns a table containing the values // RenderTable takes an array of string arrays and returns a table containing the values
func RenderTable(stringArrays [][]string) (string, error) { func RenderTable(stringArrays [][]string) (string, error) {
// if empty array is given then getPadWidths will panic hence check to make sure array is not empty // if empty array is given then getPadWidths will panic hence return an empty string
if len(stringArrays) == 0 { if len(stringArrays) == 0 {
return "", errors.New("RenderTable given an empty array") return "", nil
} }
if !displayArraysAligned(stringArrays) { if !displayArraysAligned(stringArrays) {
return "", errors.New("Each item must return the same number of strings to display") return "", errors.New("Each item must return the same number of strings to display")