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"}) if err != nil {
} gui.Log.Error(err)
renderedTable, err := utils.RenderTable(envVariablesList) renderedTable = gui.Tr.CannotDisplayEnvVairables
// in case of some error }
if err != nil {
// log the error
gui.Log.Error(err)
renderedTable = "Something went wrong while displaying environment variables"
} }
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

@ -83,13 +83,16 @@ type TranslationSet struct {
ViewBulkCommands string ViewBulkCommands string
OpenInBrowser string OpenInBrowser string
LogsTitle string LogsTitle string
ConfigTitle string ConfigTitle string
EnvTitle string EnvTitle string
DockerComposeConfigTitle string DockerComposeConfigTitle string
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")