From b24328ddc31ffeae21557864a3cae1d75b890a4c Mon Sep 17 00:00:00 2001 From: Matthias Schneider Date: Thu, 7 Jan 2021 10:26:44 +0100 Subject: [PATCH] use happy path for better code readability --- segment-aws.go | 27 ++++++------ segment-cwd.go | 9 ++-- segment-docker.go | 16 ++++---- segment-dotenv.go | 19 +++++---- segment-duration.go | 75 +++++++++++++++++----------------- segment-exitcode.go | 30 +++++++------- segment-gcp.go | 20 ++++----- segment-git.go | 3 +- segment-gitlite.go | 9 ++-- segment-hg.go | 61 +++++++++++++-------------- segment-jobs.go | 19 +++++---- segment-node.go | 35 +++++++++------- segment-plenv.go | 19 +++++---- segment-rbenv.go | 43 ++++++++++--------- segment-readonly.go | 16 ++++---- segment-readonly_windows.go | 19 +++++---- segment-shellvar.go | 29 +++++++------ segment-shenv.go | 20 ++++----- segment-ssh.go | 21 +++++----- segment-terraform_workspace.go | 31 +++++++------- segment-username.go | 7 ++-- segment-vgo.go | 24 +++++------ segment-virtualenv.go | 26 ++++++------ 23 files changed, 300 insertions(+), 278 deletions(-) diff --git a/segment-aws.go b/segment-aws.go index e039f62b..6955f456 100644 --- a/segment-aws.go +++ b/segment-aws.go @@ -1,24 +1,25 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentAWS(p *powerline) []pwl.Segment { profile := os.Getenv("AWS_PROFILE") region := os.Getenv("AWS_DEFAULT_REGION") - if profile != "" { - var r string - if region != "" { - r = " (" + region + ")" - } - return []pwl.Segment{{ - Name: "aws", - Content: profile + r, - Foreground: p.theme.AWSFg, - Background: p.theme.AWSBg, - }} + if profile == "" { + return []pwl.Segment{} + } + var r string + if region != "" { + r = " (" + region + ")" } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "aws", + Content: profile + r, + Foreground: p.theme.AWSFg, + Background: p.theme.AWSBg, + }} } diff --git a/segment-cwd.go b/segment-cwd.go index 8d490767..c8d6ec98 100644 --- a/segment-cwd.go +++ b/segment-cwd.go @@ -161,7 +161,8 @@ func getColor(p *powerline, pathSegment pathSegment, isLastDir bool) (uint8, uin func segmentCwd(p *powerline) (segments []pwl.Segment) { cwd := p.cwd - if p.cfg.CwdMode == "plain" { + switch p.cfg.CwdMode { + case "plain": if strings.HasPrefix(cwd, p.userInfo.HomeDir) { cwd = "~" + cwd[len(p.userInfo.HomeDir):] } @@ -172,7 +173,7 @@ func segmentCwd(p *powerline) (segments []pwl.Segment) { Foreground: p.theme.CwdFg, Background: p.theme.PathBg, }) - } else { + default: pathSegments := cwdToPathSegments(p, cwd) if p.cfg.CwdMode == "dironly" { @@ -213,11 +214,11 @@ func segmentCwd(p *powerline) (segments []pwl.Segment) { } first := pathSegments[0] pathSegments = make([]pathSegment, 0) - if (first.home || first.alias) { + if first.home || first.alias { pathSegments = append(pathSegments, first) } pathSegments = append(pathSegments, pathSegment{ - path: path, + path: path, }) } } diff --git a/segment-docker.go b/segment-docker.go index f7fa2da0..75b27796 100644 --- a/segment-docker.go +++ b/segment-docker.go @@ -21,13 +21,13 @@ func segmentDocker(p *powerline) []pwl.Segment { } } - if docker != "" { - return []pwl.Segment{{ - Name: "docker", - Content: docker, - Foreground: p.theme.DockerMachineFg, - Background: p.theme.DockerMachineBg, - }} + if docker == "" { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "docker", + Content: docker, + Foreground: p.theme.DockerMachineFg, + Background: p.theme.DockerMachineBg, + }} } diff --git a/segment-dotenv.go b/segment-dotenv.go index c3c28b71..2e5344fb 100644 --- a/segment-dotenv.go +++ b/segment-dotenv.go @@ -1,8 +1,9 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentDotEnv(p *powerline) []pwl.Segment { @@ -15,13 +16,13 @@ func segmentDotEnv(p *powerline) []pwl.Segment { break } } - if dotEnv { - return []pwl.Segment{{ - Name: "dotenv", - Content: "\u2235", - Foreground: p.theme.DotEnvFg, - Background: p.theme.DotEnvBg, - }} + if !dotEnv { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "dotenv", + Content: "\u2235", + Foreground: p.theme.DotEnvFg, + Background: p.theme.DotEnvBg, + }} } diff --git a/segment-duration.go b/segment-duration.go index 77090110..4868b71d 100644 --- a/segment-duration.go +++ b/segment-duration.go @@ -39,7 +39,7 @@ func segmentDuration(p *powerline) []pwl.Segment { durationValue := strings.Trim(p.cfg.Duration, "'\"") durationMinValue := strings.Trim(p.cfg.DurationMin, "'\"") - hasPrecision := strings.Index(durationValue, ".") != -1 + hasPrecision := strings.Contains(durationValue, ".") durationFloat, err := strconv.ParseFloat(durationValue, 64) durationMinFloat, _ := strconv.ParseFloat(durationMinValue, 64) @@ -58,42 +58,43 @@ func segmentDuration(p *powerline) []pwl.Segment { duration := time.Duration(durationFloat * float64(time.Second.Nanoseconds())) - if duration > 0 { - var content string - ns := duration.Nanoseconds() - if ns > hours { - hrs := ns / hours - ns -= hrs * hours - mins := ns / minutes - content = fmt.Sprintf("%dh %dm", hrs, mins) - } else if ns > minutes { - mins := ns / minutes - ns -= mins * minutes - secs := ns / seconds - content = fmt.Sprintf("%dm %ds", mins, secs) - } else if !hasPrecision { - secs := ns / seconds - content = fmt.Sprintf("%ds", secs) - } else if ns > seconds { - secs := ns / seconds - ns -= secs * seconds - millis := ns / milliseconds - content = fmt.Sprintf("%ds %dms", secs, millis) - } else if ns > milliseconds { - millis := ns / milliseconds - ns -= millis * milliseconds - micros := ns / microseconds - content = fmt.Sprintf("%dms %d\u00B5s", millis, micros) - } else { - content = fmt.Sprintf("%d\u00B5s", ns/microseconds) - } + if duration <= 0 { + return []pwl.Segment{} + } - return []pwl.Segment{{ - Name: "duration", - Content: content, - Foreground: p.theme.DurationFg, - Background: p.theme.DurationBg, - }} + var content string + ns := duration.Nanoseconds() + if ns > hours { + hrs := ns / hours + ns -= hrs * hours + mins := ns / minutes + content = fmt.Sprintf("%dh %dm", hrs, mins) + } else if ns > minutes { + mins := ns / minutes + ns -= mins * minutes + secs := ns / seconds + content = fmt.Sprintf("%dm %ds", mins, secs) + } else if !hasPrecision { + secs := ns / seconds + content = fmt.Sprintf("%ds", secs) + } else if ns > seconds { + secs := ns / seconds + ns -= secs * seconds + millis := ns / milliseconds + content = fmt.Sprintf("%ds %dms", secs, millis) + } else if ns > milliseconds { + millis := ns / milliseconds + ns -= millis * milliseconds + micros := ns / microseconds + content = fmt.Sprintf("%dms %d\u00B5s", millis, micros) + } else { + content = fmt.Sprintf("%d\u00B5s", ns/microseconds) } - return []pwl.Segment{} + + return []pwl.Segment{{ + Name: "duration", + Content: content, + Foreground: p.theme.DurationFg, + Background: p.theme.DurationBg, + }} } diff --git a/segment-exitcode.go b/segment-exitcode.go index 5b2c2a0c..b783867b 100644 --- a/segment-exitcode.go +++ b/segment-exitcode.go @@ -2,9 +2,10 @@ package main import ( "fmt" + "strconv" + "github.com/justjanne/powerline-go/exitcode" pwl "github.com/justjanne/powerline-go/powerline" - "strconv" ) var exitCodes = map[int]string{ @@ -31,18 +32,19 @@ func getMeaningFromExitCode(exitCode int) string { func segmentExitCode(p *powerline) []pwl.Segment { var meaning string - if p.cfg.PrevError != 0 { - if p.cfg.NumericExitCodes { - meaning = strconv.Itoa(p.cfg.PrevError) - } else { - meaning = getMeaningFromExitCode(p.cfg.PrevError) - } - return []pwl.Segment{{ - Name: "exit", - Content: meaning, - Foreground: p.theme.CmdFailedFg, - Background: p.theme.CmdFailedBg, - }} + if p.cfg.PrevError == 0 { + return []pwl.Segment{} } - return []pwl.Segment{} + if p.cfg.NumericExitCodes { + meaning = strconv.Itoa(p.cfg.PrevError) + } else { + meaning = getMeaningFromExitCode(p.cfg.PrevError) + } + + return []pwl.Segment{{ + Name: "exit", + Content: meaning, + Foreground: p.theme.CmdFailedFg, + Background: p.theme.CmdFailedBg, + }} } diff --git a/segment-gcp.go b/segment-gcp.go index 010709dd..9912e25f 100644 --- a/segment-gcp.go +++ b/segment-gcp.go @@ -1,10 +1,11 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "log" "os/exec" "strings" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentGCP(p *powerline) []pwl.Segment { @@ -14,14 +15,13 @@ func segmentGCP(p *powerline) []pwl.Segment { } project := strings.TrimSuffix(string(out), "\n") - if project != "" { - return []pwl.Segment{{ - Name: "gcp", - Content: project, - Foreground: p.theme.GCPFg, - Background: p.theme.GCPBg, - }} + if project == "" { + return []pwl.Segment{} } - - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "gcp", + Content: project, + Foreground: p.theme.GCPFg, + Background: p.theme.GCPBg, + }} } diff --git a/segment-git.go b/segment-git.go index 8b2d5e9f..5b2fff16 100644 --- a/segment-git.go +++ b/segment-git.go @@ -2,13 +2,14 @@ package main import ( "fmt" - pwl "github.com/justjanne/powerline-go/powerline" "os" "os/exec" "path" "regexp" "strconv" "strings" + + pwl "github.com/justjanne/powerline-go/powerline" ) type repoStats struct { diff --git a/segment-gitlite.go b/segment-gitlite.go index 835fc700..b7f535e9 100644 --- a/segment-gitlite.go +++ b/segment-gitlite.go @@ -1,8 +1,9 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "strings" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentGitLite(p *powerline) []pwl.Segment { @@ -25,10 +26,10 @@ func segmentGitLite(p *powerline) []pwl.Segment { status := strings.TrimSpace(out) var branch string - if status != "HEAD" { - branch = status - } else { + if status == "HEAD" { branch = getGitDetachedBranch(p) + } else { + branch = status } return []pwl.Segment{{ diff --git a/segment-hg.go b/segment-hg.go index 1ecfcb70..811bdc81 100644 --- a/segment-hg.go +++ b/segment-hg.go @@ -2,9 +2,10 @@ package main import ( "fmt" - pwl "github.com/justjanne/powerline-go/powerline" "os/exec" "strings" + + pwl "github.com/justjanne/powerline-go/powerline" ) func getHgStatus() (bool, bool, bool) { @@ -33,40 +34,40 @@ func getHgStatus() (bool, bool, bool) { func segmentHg(p *powerline) []pwl.Segment { out, _ := exec.Command("hg", "branch").Output() output := strings.SplitN(string(out), "\n", 2) - if len(output) > 0 && output[0] != "" { - branch := output[0] - hasModifiedFiles, hasUntrackedFiles, hasMissingFiles := getHgStatus() - - var foreground, background uint8 - var content string - if hasModifiedFiles || hasUntrackedFiles || hasMissingFiles { - foreground = p.theme.RepoDirtyFg - background = p.theme.RepoDirtyBg + if !(len(output) > 0 && output[0] != "") { + return []pwl.Segment{} + } + branch := output[0] + hasModifiedFiles, hasUntrackedFiles, hasMissingFiles := getHgStatus() - extra := "" + var foreground, background uint8 + var content string + if hasModifiedFiles || hasUntrackedFiles || hasMissingFiles { + foreground = p.theme.RepoDirtyFg + background = p.theme.RepoDirtyBg - if hasUntrackedFiles { - extra += "+" - } + extra := "" - if hasMissingFiles { - extra += "!" - } - - content = fmt.Sprintf("%s %s", branch, extra) - } else { - foreground = p.theme.RepoCleanFg - background = p.theme.RepoCleanBg + if hasUntrackedFiles { + extra += "+" + } - content = fmt.Sprintf(branch) + if hasMissingFiles { + extra += "!" } - return []pwl.Segment{{ - Name: "hg", - Content: content, - Foreground: foreground, - Background: background, - }} + content = fmt.Sprintf("%s %s", branch, extra) + } else { + foreground = p.theme.RepoCleanFg + background = p.theme.RepoCleanBg + + content = branch } - return []pwl.Segment{} + + return []pwl.Segment{{ + Name: "hg", + Content: content, + Foreground: foreground, + Background: background, + }} } diff --git a/segment-jobs.go b/segment-jobs.go index 9cbb193c..8981beac 100644 --- a/segment-jobs.go +++ b/segment-jobs.go @@ -1,18 +1,19 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "strconv" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentJobs(p *powerline) []pwl.Segment { - if p.cfg.Jobs > 0 { - return []pwl.Segment{{ - Name: "jobs", - Content: strconv.Itoa(p.cfg.Jobs), - Foreground: p.theme.JobsFg, - Background: p.theme.JobsBg, - }} + if p.cfg.Jobs <= 0 { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "jobs", + Content: strconv.Itoa(p.cfg.Jobs), + Foreground: p.theme.JobsFg, + Background: p.theme.JobsBg, + }} } diff --git a/segment-node.go b/segment-node.go index 898c2f94..8abfc01b 100644 --- a/segment-node.go +++ b/segment-node.go @@ -16,20 +16,25 @@ type packageJSON struct { func segmentNode(p *powerline) []pwl.Segment { stat, err := os.Stat(pkgfile) - if err == nil && !stat.IsDir() { - pkg := packageJSON{"!"} - raw, err := ioutil.ReadFile(pkgfile) - if err == nil { - err = json.Unmarshal(raw, &pkg) - if err == nil { - return []pwl.Segment{{ - Name: "node-segment", - Content: pkg.Version + " \u2B22", - Foreground: p.theme.NodeFg, - Background: p.theme.NodeBg, - }} - } - } + if err != nil { + return []pwl.Segment{} } - return []pwl.Segment{} + if stat.IsDir() { + return []pwl.Segment{} + } + pkg := packageJSON{"!"} + raw, err := ioutil.ReadFile(pkgfile) + if err != nil { + return []pwl.Segment{} + } + err = json.Unmarshal(raw, &pkg) + if err != nil { + return []pwl.Segment{} + } + return []pwl.Segment{{ + Name: "node-segment", + Content: pkg.Version + " \u2B22", + Foreground: p.theme.NodeFg, + Background: p.theme.NodeBg, + }} } diff --git a/segment-plenv.go b/segment-plenv.go index de208f85..b5ab44fc 100644 --- a/segment-plenv.go +++ b/segment-plenv.go @@ -1,19 +1,20 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentPlEnv(p *powerline) []pwl.Segment { env, _ := os.LookupEnv("PLENV_VERSION") - if env != "" { - return []pwl.Segment{{ - Name: "plenv", - Content: env, - Foreground: p.theme.PlEnvFg, - Background: p.theme.PlEnvBg, - }} + if env == "" { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "plenv", + Content: env, + Foreground: p.theme.PlEnvFg, + Background: p.theme.PlEnvBg, + }} } diff --git a/segment-rbenv.go b/segment-rbenv.go index c976b2e7..beaaff6c 100644 --- a/segment-rbenv.go +++ b/segment-rbenv.go @@ -1,13 +1,14 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "errors" "io/ioutil" "os" "os/exec" "path/filepath" "strings" + + pwl "github.com/justjanne/powerline-go/powerline" ) const rubyVersionFileSuffix = "/.ruby-version" @@ -22,18 +23,17 @@ func runRbenvCommand(cmd string, args ...string) (string, error) { // check RBENV_VERSION variable func checkEnvForRbenvVersion() (string, error) { rbenvVersion := os.Getenv("RBENV_VERSION") - if (len(rbenvVersion) > 0) { - return rbenvVersion, nil - } else { + if len(rbenvVersion) <= 0 { return "", errors.New("Not found in RBENV_VERSION") } + return rbenvVersion, nil } // check existence of .ruby_version in tree until root path func checkForRubyVersionFileInTree() (string, error) { var ( workingDirectory string - err error + err error ) workingDirectory, err = os.Getwd() @@ -55,31 +55,31 @@ func checkForRubyVersionFileInTree() (string, error) { func checkForGlobalVersion() (string, error) { homeDir, _ := os.UserHomeDir() globalRubyVersion, err := ioutil.ReadFile(homeDir + globalVersionFileSuffix) - if err == nil { - return strings.TrimSpace(string(globalRubyVersion)), nil - } else { + if err != nil { return "", errors.New("No global version file found in tree") } + return strings.TrimSpace(string(globalRubyVersion)), nil } // retrieve rbenv version output func checkForRbenvOutput() (string, error) { // spawn rbenv and print out version out, err := runRbenvCommand("rbenv", "version") - if err == nil { - items := strings.Split(out, " ") - if len(items) > 1 { - return items[0], nil - } + if err != nil { + return "", errors.New("Not found in rbenv output") + } + items := strings.Split(out, " ") + if len(items) <= 0 { + return "", errors.New("Not found in rbenv output") } - return "", errors.New("Not found in rbenv output") + return items[0], nil } func segmentRbenv(p *powerline) []pwl.Segment { var ( segment string - err error + err error ) segment, err = checkEnvForRbenvVersion() @@ -94,12 +94,11 @@ func segmentRbenv(p *powerline) []pwl.Segment { } if err != nil { return []pwl.Segment{} - } else { - return []pwl.Segment{{ - Name: "rbenv", - Content: segment, - Foreground: p.theme.TimeFg, - Background: p.theme.TimeBg, - }} } + return []pwl.Segment{{ + Name: "rbenv", + Content: segment, + Foreground: p.theme.TimeFg, + Background: p.theme.TimeBg, + }} } diff --git a/segment-readonly.go b/segment-readonly.go index dcfc6cc7..c270e16e 100644 --- a/segment-readonly.go +++ b/segment-readonly.go @@ -9,13 +9,13 @@ import ( func segmentPerms(p *powerline) []pwl.Segment { cwd := p.cwd - if unix.Access(cwd, unix.W_OK) != nil { - return []pwl.Segment{{ - Name: "perms", - Content: p.symbols.Lock, - Foreground: p.theme.ReadonlyFg, - Background: p.theme.ReadonlyBg, - }} + if unix.Access(cwd, unix.W_OK) == nil { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "perms", + Content: p.symbols.Lock, + Foreground: p.theme.ReadonlyFg, + Background: p.theme.ReadonlyBg, + }} } diff --git a/segment-readonly_windows.go b/segment-readonly_windows.go index 38d498bc..0bb5adbc 100644 --- a/segment-readonly_windows.go +++ b/segment-readonly_windows.go @@ -3,8 +3,9 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentPerms(p *powerline) []pwl.Segment { @@ -12,13 +13,13 @@ func segmentPerms(p *powerline) []pwl.Segment { const W_USR = 0002 // Check user's permissions on directory in a portable but probably slower way fileInfo, _ := os.Stat(cwd) - if fileInfo.Mode()&W_USR != W_USR { - return []pwl.Segment{{ - Name: "perms", - Content: p.symbols.Lock, - Foreground: p.theme.ReadonlyFg, - Background: p.theme.ReadonlyBg, - }} + if fileInfo.Mode()&W_USR == W_USR { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "perms", + Content: p.symbols.Lock, + Foreground: p.theme.ReadonlyFg, + Background: p.theme.ReadonlyBg, + }} } diff --git a/segment-shellvar.go b/segment-shellvar.go index 3872c6b6..20f4c1b3 100644 --- a/segment-shellvar.go +++ b/segment-shellvar.go @@ -1,28 +1,31 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentShellVar(p *powerline) []pwl.Segment { shellVarName := p.cfg.ShellVar varContent, varExists := os.LookupEnv(shellVarName) - if varExists { - if varContent != "" { - return []pwl.Segment{{ - Name: "shell-var", - Content: varContent, - Foreground: p.theme.ShellVarFg, - Background: p.theme.ShellVarBg, - }} - } + if !varExists { + warn("Shell variable " + shellVarName + " does not exist.") + return []pwl.Segment{} + } + + if varContent == "" { if !p.cfg.ShellVarNoWarnEmpty { warn("Shell variable " + shellVarName + " is empty.") } - } else { - warn("Shell variable " + shellVarName + " does not exist.") + return []pwl.Segment{} } - return []pwl.Segment{} + + return []pwl.Segment{{ + Name: "shell-var", + Content: varContent, + Foreground: p.theme.ShellVarFg, + Background: p.theme.ShellVarBg, + }} } diff --git a/segment-shenv.go b/segment-shenv.go index e2738dad..2d13ab5f 100644 --- a/segment-shenv.go +++ b/segment-shenv.go @@ -1,20 +1,20 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentShEnv(p *powerline) []pwl.Segment { env, _ := os.LookupEnv("SHENV_VERSION") - if env != "" { - return []pwl.Segment{{ - Name: "shenv", - Content: env, - Foreground: p.theme.ShEnvFg, - Background: p.theme.ShEnvBg, - }} + if env == "" { + return []pwl.Segment{} } - - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "shenv", + Content: env, + Foreground: p.theme.ShEnvFg, + Background: p.theme.ShEnvBg, + }} } diff --git a/segment-ssh.go b/segment-ssh.go index a86f8177..ab6c1e9c 100644 --- a/segment-ssh.go +++ b/segment-ssh.go @@ -1,12 +1,16 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentSSH(p *powerline) []pwl.Segment { sshClient, _ := os.LookupEnv("SSH_CLIENT") + if sshClient == "" { + return []pwl.Segment{} + } var networkIcon string if p.cfg.SshAlternateIcon { networkIcon = p.symbols.NetworkAlternate @@ -14,13 +18,10 @@ func segmentSSH(p *powerline) []pwl.Segment { networkIcon = p.symbols.Network } - if sshClient != "" { - return []pwl.Segment{{ - Name: "ssh", - Content: networkIcon, - Foreground: p.theme.SSHFg, - Background: p.theme.SSHBg, - }} - } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "ssh", + Content: networkIcon, + Foreground: p.theme.SSHFg, + Background: p.theme.SSHBg, + }} } diff --git a/segment-terraform_workspace.go b/segment-terraform_workspace.go index 35c41edb..6061096d 100644 --- a/segment-terraform_workspace.go +++ b/segment-terraform_workspace.go @@ -1,27 +1,30 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "io/ioutil" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) const wsFile = "./.terraform/environment" func segmentTerraformWorkspace(p *powerline) []pwl.Segment { stat, err := os.Stat(wsFile) - - if err == nil && !stat.IsDir() { - workspace, err := ioutil.ReadFile(wsFile) - if err == nil { - return []pwl.Segment{{ - Name: "terraform-workspace", - Content: string(workspace), - Foreground: p.theme.TFWsFg, - Background: p.theme.TFWsBg, - }} - - } + if err == nil { + return []pwl.Segment{} + } + if stat.IsDir() { + return []pwl.Segment{} + } + workspace, err := ioutil.ReadFile(wsFile) + if err != nil { + return []pwl.Segment{} } - return []pwl.Segment{} + return []pwl.Segment{{ + Name: "terraform-workspace", + Content: string(workspace), + Foreground: p.theme.TFWsFg, + Background: p.theme.TFWsBg, + }} } diff --git a/segment-username.go b/segment-username.go index d22e99f1..270683eb 100644 --- a/segment-username.go +++ b/segment-username.go @@ -6,11 +6,12 @@ import ( func segmentUser(p *powerline) []pwl.Segment { var userPrompt string - if p.cfg.Shell == "bash" { + switch p.cfg.Shell { + case "bash": userPrompt = "\\u" - } else if p.cfg.Shell == "zsh" { + case "zsh": userPrompt = "%n" - } else { + default: userPrompt = p.username } diff --git a/segment-vgo.go b/segment-vgo.go index 4fbed809..df7e9b40 100644 --- a/segment-vgo.go +++ b/segment-vgo.go @@ -1,23 +1,21 @@ package main import ( - pwl "github.com/justjanne/powerline-go/powerline" "os" + + pwl "github.com/justjanne/powerline-go/powerline" ) func segmentVirtualGo(p *powerline) []pwl.Segment { - var env string + env, _ := os.LookupEnv("VIRTUALGO") if env == "" { - env, _ = os.LookupEnv("VIRTUALGO") + return []pwl.Segment{} } - segments := []pwl.Segment{} - if env != "" { - segments = append(segments, pwl.Segment{ - Name: "vgo", - Content: env, - Foreground: p.theme.VirtualGoFg, - Background: p.theme.VirtualGoBg, - }) - } - return segments + + return []pwl.Segment{{ + Name: "vgo", + Content: env, + Foreground: p.theme.VirtualGoFg, + Background: p.theme.VirtualGoBg, + }} } diff --git a/segment-virtualenv.go b/segment-virtualenv.go index 7ac8188d..2118c21a 100644 --- a/segment-virtualenv.go +++ b/segment-virtualenv.go @@ -21,18 +21,18 @@ func segmentVirtualEnv(p *powerline) []pwl.Segment { if env == "" { env, _ = os.LookupEnv("PYENV_VERSION") } - segments := []pwl.Segment{} - if env != "" { - envName := path.Base(env) - if p.cfg.VenvNameSizeLimit > 0 && len(envName) > p.cfg.VenvNameSizeLimit { - envName = p.symbols.VenvIndicator - } - segments = append(segments, pwl.Segment{ - Name: "venv", - Content: envName, - Foreground: p.theme.VirtualEnvFg, - Background: p.theme.VirtualEnvBg, - }) + if env == "" { + return []pwl.Segment{} + } + envName := path.Base(env) + if p.cfg.VenvNameSizeLimit > 0 && len(envName) > p.cfg.VenvNameSizeLimit { + envName = p.symbols.VenvIndicator } - return segments + + return []pwl.Segment{{ + Name: "venv", + Content: envName, + Foreground: p.theme.VirtualEnvFg, + Background: p.theme.VirtualEnvBg, + }} }