diff --git a/.editorconfig b/.editorconfig
index 65538e70..3ec5e57c 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -9,6 +9,7 @@ root = true
indent_style = space
trim_trailing_whitespace = true
insert_final_newline = true
+end_of_line = lf
; Go Code - match go fmt
[*.go]
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 00000000..6313b56c
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
diff --git a/.github/workflows/code.yml b/.github/workflows/code.yml
index 8446751c..d3bce487 100644
--- a/.github/workflows/code.yml
+++ b/.github/workflows/code.yml
@@ -27,7 +27,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v2
- name: Golang CI
- if: matrix.os == 'ubuntu-latest'
uses: golangci/golangci-lint-action@v2
with:
version: v1.31
diff --git a/.gitignore b/.gitignore
old mode 100755
new mode 100644
diff --git a/.golangci.yml b/.golangci.yml
new file mode 100644
index 00000000..43221454
--- /dev/null
+++ b/.golangci.yml
@@ -0,0 +1,50 @@
+linters:
+ disable-all: true
+ enable:
+ - bodyclose
+ - deadcode
+ - depguard
+ - dupl
+ - errcheck
+ - exhaustive
+ - gochecknoinits
+ - goconst
+ - gocritic
+ - gocyclo
+ - gofmt
+ - goimports
+ - golint
+ - goprintffuncname
+ - gosimple
+ - govet
+ - ineffassign
+ - interfacer
+ - misspell
+ - nakedret
+ - noctx
+ - nolintlint
+ - rowserrcheck
+ - scopelint
+ - staticcheck
+ - structcheck
+ - typecheck
+ - unconvert
+ - unparam
+ - unused
+ - varcheck
+ - whitespace
+ - lll
+linters-settings:
+ gocritic:
+ enabled-tags:
+ - diagnostic
+ - experimental
+ - opinionated
+ - performance
+ - style
+ disabled-tags:
+ - experimental
+ disabled-checks:
+ - ifElseChain
+ lll:
+ line-length: 180
diff --git a/docs/static/img/logo.svg b/docs/static/img/logo.svg
index 70a1f042..d3d67f16 100644
--- a/docs/static/img/logo.svg
+++ b/docs/static/img/logo.svg
@@ -1,49 +1,49 @@
-
-
-
+
+
+
diff --git a/engine.go b/engine.go
index eb4d4468..3126248c 100644
--- a/engine.go
+++ b/engine.go
@@ -27,7 +27,7 @@ func (e *engine) getPowerlineColor(foreground bool) string {
return e.previousActiveSegment.Background
}
-func (e *engine) writePowerLineSeparator(background string, foreground string, end bool) {
+func (e *engine) writePowerLineSeparator(background, foreground string, end bool) {
symbol := e.activeSegment.PowerlineSymbol
if end {
symbol = e.previousActiveSegment.PowerlineSymbol
@@ -75,7 +75,7 @@ func (e *engine) renderSegmentText(text string) {
e.renderPlainSegment(text)
case Diamond:
e.renderDiamondSegment(text)
- default:
+ case Powerline:
e.renderPowerLineSegment(text)
}
e.previousActiveSegment = e.activeSegment
@@ -135,7 +135,7 @@ func (e *engine) render() {
cursorMove := e.renderer.setCursorForRightWrite(blockText, block.HorizontalOffset)
e.renderer.print(cursorMove)
e.renderer.print(blockText)
- default:
+ case Left:
e.renderer.print(e.renderBlockSegments(block))
}
}
diff --git a/environment.go b/environment.go
index b65ce05d..b43e2c32 100644
--- a/environment.go
+++ b/environment.go
@@ -16,6 +16,11 @@ import (
"github.com/shirou/gopsutil/process"
)
+const (
+ unknown = "unknown"
+ windowsPlatform = "windows"
+)
+
type environmentInfo interface {
getenv(key string) string
getcwd() string
@@ -31,12 +36,12 @@ type environmentInfo interface {
getPlatform() string
hasCommand(command string) bool
runCommand(command string, args ...string) (string, error)
- runShellCommand(shell string, command string) string
+ runShellCommand(shell, command string) string
lastErrorCode() int
getArgs() *args
getBatteryInfo() (*battery.Battery, error)
getShellName() string
- getWindowTitle(imageName string, windowTitleRegex string) (string, error)
+ getWindowTitle(imageName, windowTitleRegex string) (string, error)
}
type environment struct {
@@ -124,8 +129,8 @@ func (env *environment) getRuntimeGOOS() string {
}
func (env *environment) getPlatform() string {
- if runtime.GOOS == "windows" {
- return "windows"
+ if runtime.GOOS == windowsPlatform {
+ return windowsPlatform
}
p, _, _, _ := host.PlatformInformation()
@@ -146,7 +151,7 @@ func (env *environment) runCommand(command string, args ...string) (string, erro
return strings.TrimSpace(string(out)), nil
}
-func (env *environment) runShellCommand(shell string, command string) string {
+func (env *environment) runShellCommand(shell, command string) string {
out, err := exec.Command(shell, "-c", command).Output()
if err != nil {
log.Println(err)
@@ -177,14 +182,14 @@ func (env *environment) getShellName() string {
p, _ := process.NewProcess(int32(pid))
name, err := p.Name()
if err != nil {
- return "unknown"
+ return unknown
}
if name == "cmd.exe" {
p, _ = p.Parent()
name, err = p.Name()
}
if err != nil {
- return "unknown"
+ return unknown
}
shell := strings.Replace(name, ".exe", "", 1)
return strings.Trim(shell, " ")
diff --git a/environment_unix.go b/environment_unix.go
old mode 100755
new mode 100644
index 3590ccd2..f3476353
--- a/environment_unix.go
+++ b/environment_unix.go
@@ -15,6 +15,6 @@ func (env *environment) homeDir() string {
return os.Getenv("HOME")
}
-func (env *environment) getWindowTitle(imageName string, windowTitleRegex string) (string, error) {
+func (env *environment) getWindowTitle(imageName, windowTitleRegex string) (string, error) {
return "", errors.New("not implemented")
}
diff --git a/environment_windows.go b/environment_windows.go
old mode 100755
new mode 100644
index c7ae0f11..edab2dd6
--- a/environment_windows.go
+++ b/environment_windows.go
@@ -25,7 +25,9 @@ func (env *environment) isRunningAsRoot() bool {
if err != nil {
return false
}
- defer windows.FreeSid(sid)
+ defer func() {
+ _ = windows.FreeSid(sid)
+ }()
// This appears to cast a null pointer so I'm not sure why this
// works, but this guy says it does and it Works for Me™:
@@ -48,6 +50,6 @@ func (env *environment) homeDir() string {
return home
}
-func (env *environment) getWindowTitle(imageName string, windowTitleRegex string) (string, error) {
+func (env *environment) getWindowTitle(imageName, windowTitleRegex string) (string, error) {
return getWindowTitle(imageName, windowTitleRegex)
}
diff --git a/environment_windows_win32.go b/environment_windows_win32.go
index 346a0cad..f1d1cd1e 100644
--- a/environment_windows_win32.go
+++ b/environment_windows_win32.go
@@ -35,7 +35,7 @@ func getImagePid(imageName string) ([]int, error) {
}
// getWindowTitle returns the title of a window linked to a process name
-func getWindowTitle(imageName string, windowTitleRegex string) (string, error) {
+func getWindowTitle(imageName, windowTitleRegex string) (string, error) {
processPid, err := getImagePid(imageName)
if err != nil {
return "", nil
@@ -73,7 +73,9 @@ func processes() ([]WindowsProcess, error) {
if err != nil {
return nil, syscall.GetLastError()
}
- defer windows.CloseHandle(handle)
+ defer func() {
+ _ = windows.CloseHandle(handle)
+ }()
// get process infor by looping through the snapshot
var entry windows.ProcessEntry32
@@ -109,8 +111,8 @@ var (
)
// EnumWindows call EnumWindows from user32 and returns all active windows
-func EnumWindows(enumFunc uintptr, lparam uintptr) (err error) {
- r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, uintptr(enumFunc), uintptr(lparam), 0)
+func EnumWindows(enumFunc, lparam uintptr) (err error) {
+ r1, _, e1 := syscall.Syscall(procEnumWindows.Addr(), 2, enumFunc, lparam, 0)
if r1 == 0 {
if e1 != 0 {
err = error(e1)
@@ -122,10 +124,10 @@ func EnumWindows(enumFunc uintptr, lparam uintptr) (err error) {
}
// GetWindowText returns the title and text of a window from a window handle
-func GetWindowText(hwnd syscall.Handle, str *uint16, maxCount int32) (len int32, err error) {
+func GetWindowText(hwnd syscall.Handle, str *uint16, maxCount int32) (length int32, err error) {
r0, _, e1 := syscall.Syscall(procGetWindowTextW.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(str)), uintptr(maxCount))
- len = int32(r0)
- if len == 0 {
+ length = int32(r0)
+ if length == 0 {
if e1 != 0 {
err = error(e1)
} else {
@@ -135,7 +137,7 @@ func GetWindowText(hwnd syscall.Handle, str *uint16, maxCount int32) (len int32,
return
}
-// GetWindowTitle searchs for a window attached to the pid
+// GetWindowTitle searches for a window attached to the pid
func GetWindowTitle(pid int, windowTitleRegex string) (syscall.Handle, string, error) {
var hwnd syscall.Handle
var title string
@@ -166,8 +168,8 @@ func GetWindowTitle(pid int, windowTitleRegex string) (syscall.Handle, string, e
return 1 // continue enumeration
})
// Enumerates all top-level windows on the screen
- EnumWindows(cb, 0)
- if hwnd == 0 {
+ err = EnumWindows(cb, 0)
+ if err != nil || hwnd == 0 {
return 0, "", fmt.Errorf("No window with title '%b' found", pid)
}
return hwnd, title, nil
diff --git a/main.go b/main.go
old mode 100755
new mode 100644
diff --git a/packages/powershell/oh-my-posh/oh-my-posh.psd1 b/packages/powershell/oh-my-posh/oh-my-posh.psd1
index a2403c95..bd979f5e 100644
--- a/packages/powershell/oh-my-posh/oh-my-posh.psd1
+++ b/packages/powershell/oh-my-posh/oh-my-posh.psd1
@@ -1,110 +1,110 @@
-#
-# Module manifest for module 'oh-my-posh3'
-#
-# Generated by: Jan De Dobbeleer
-#
-# Generated on: 11-Sep-20
-#
-@{
- # Version number of this module.
- ModuleVersion = '0.0.0.1'
- # Script module or binary module file associated with this manifest.
- RootModule = 'oh-my-posh.psm1'
- # ID used to uniquely identify this module
- GUID = '7d7c4a78-e2fe-4e5f-9510-34ac893e4562'
- # Company or vendor of this module
- CompanyName = 'Unknown'
- # Author of this module
- Author = 'Jan De Dobbeleer'
- # Copyright statement for this module
- Copyright = '(c) 2020 Jan De Dobbeleer. All rights reserved.'
- # Description of the functionality provided by this module
- Description = 'A prompt theme engine for any shell'
- # Minimum version of the Windows PowerShell engine required by this module
- PowerShellVersion = '6.0'
- # List of all files packaged with this module
- FileList = @()
- # Cmdlets to export from this module
- CmdletsToExport = @()
- # Variables to export from this module
- VariablesToExport = @()
- # Aliases to export from this module
- AliasesToExport = '*'
- # Functions to export from this module
- FunctionsToExport = @('Get-PoshThemes', 'Set-PoshPrompt', 'Write-PoshTheme', 'Set-PoshContext')
- # Private data to pass to the module specified in RootModule. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
- PrivateData = @{
- PSData = @{
- Prerelease = 'beta'
- # Tags applied to this module. These help with module discovery in online galleries.
- Tags = @('git', 'agnoster', 'theme', 'zsh', 'posh-git', 'prompt', 'paradox', 'robbyrussel', 'oh-my-posh')
- # A URL to the license for this module.
- LicenseUri = 'https://github.com/JanDeDobbeleer/oh-my-posh3/blob/main/COPYING'
- # A URL to the main website for this project.
- ProjectUri = 'https://github.com/JanDeDobbeleer/oh-my-posh3'
- } # End of PSData hashtable
- } # End of PrivateData hashtable
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+#
+# Module manifest for module 'oh-my-posh3'
+#
+# Generated by: Jan De Dobbeleer
+#
+# Generated on: 11-Sep-20
+#
+@{
+ # Version number of this module.
+ ModuleVersion = '0.0.0.1'
+ # Script module or binary module file associated with this manifest.
+ RootModule = 'oh-my-posh.psm1'
+ # ID used to uniquely identify this module
+ GUID = '7d7c4a78-e2fe-4e5f-9510-34ac893e4562'
+ # Company or vendor of this module
+ CompanyName = 'Unknown'
+ # Author of this module
+ Author = 'Jan De Dobbeleer'
+ # Copyright statement for this module
+ Copyright = '(c) 2020 Jan De Dobbeleer. All rights reserved.'
+ # Description of the functionality provided by this module
+ Description = 'A prompt theme engine for any shell'
+ # Minimum version of the Windows PowerShell engine required by this module
+ PowerShellVersion = '6.0'
+ # List of all files packaged with this module
+ FileList = @()
+ # Cmdlets to export from this module
+ CmdletsToExport = @()
+ # Variables to export from this module
+ VariablesToExport = @()
+ # Aliases to export from this module
+ AliasesToExport = '*'
+ # Functions to export from this module
+ FunctionsToExport = @('Get-PoshThemes', 'Set-PoshPrompt', 'Write-PoshTheme', 'Set-PoshContext')
+ # Private data to pass to the module specified in RootModule. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
+ PrivateData = @{
+ PSData = @{
+ Prerelease = 'beta'
+ # Tags applied to this module. These help with module discovery in online galleries.
+ Tags = @('git', 'agnoster', 'theme', 'zsh', 'posh-git', 'prompt', 'paradox', 'robbyrussel', 'oh-my-posh')
+ # A URL to the license for this module.
+ LicenseUri = 'https://github.com/JanDeDobbeleer/oh-my-posh3/blob/main/COPYING'
+ # A URL to the main website for this project.
+ ProjectUri = 'https://github.com/JanDeDobbeleer/oh-my-posh3'
+ } # End of PSData hashtable
+ } # End of PrivateData hashtable
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/properties.go b/properties.go
index c8671a39..589a7f87 100644
--- a/properties.go
+++ b/properties.go
@@ -5,22 +5,22 @@ import (
"regexp"
)
-//Property defines one property of a segment for context
+// Property defines one property of a segment for context
type Property string
-//general Properties used across Segments
+// general Properties used across Segments
const (
- //Style indicates with style to use
+ // Style indicates with style to use
Style Property = "style"
- //Prefix adds a text prefix to the segment
+ // Prefix adds a text prefix to the segment
Prefix Property = "prefix"
- //Postfix adds a text postfix to the segment
+ // Postfix adds a text postfix to the segment
Postfix Property = "postfix"
- //ColorBackground color the background or foreground when a specific color is set
+ // ColorBackground color the background or foreground when a specific color is set
ColorBackground Property = "color_background"
- //IgnoreFolders folders to ignore and not run the segment logic
+ // IgnoreFolders folders to ignore and not run the segment logic
IgnoreFolders Property = "ignore_folders"
- //DisplayVersion show the version number or not
+ // DisplayVersion show the version number or not
DisplayVersion Property = "display_version"
)
diff --git a/properties_test.go b/properties_test.go
index 888b204f..f8eb15a6 100644
--- a/properties_test.go
+++ b/properties_test.go
@@ -6,8 +6,11 @@ import (
"github.com/stretchr/testify/assert"
)
+const (
+ expected = "expected"
+)
+
func TestGetString(t *testing.T) {
- expected := "expected"
values := map[Property]interface{}{TextProperty: expected}
properties := properties{
values: values,
@@ -17,7 +20,6 @@ func TestGetString(t *testing.T) {
}
func TestGetStringNoEntry(t *testing.T) {
- expected := "expected"
values := map[Property]interface{}{}
properties := properties{
values: values,
@@ -27,7 +29,6 @@ func TestGetStringNoEntry(t *testing.T) {
}
func TestGetStringNoTextEntry(t *testing.T) {
- expected := "expected"
values := map[Property]interface{}{TextProperty: true}
properties := properties{
values: values,
@@ -37,7 +38,7 @@ func TestGetStringNoTextEntry(t *testing.T) {
}
func TestGetColor(t *testing.T) {
- expected := "#123456"
+ expected := expectedColor
values := map[Property]interface{}{UserColor: expected}
properties := properties{
values: values,
@@ -47,7 +48,7 @@ func TestGetColor(t *testing.T) {
}
func TestDefaultColorWithInvalidColorCode(t *testing.T) {
- expected := "#123456"
+ expected := expectedColor
values := map[Property]interface{}{UserColor: "invalid"}
properties := properties{
values: values,
@@ -57,7 +58,7 @@ func TestDefaultColorWithInvalidColorCode(t *testing.T) {
}
func TestDefaultColorWithUnavailableProperty(t *testing.T) {
- expected := "#123456"
+ expected := expectedColor
values := map[Property]interface{}{}
properties := properties{
values: values,
diff --git a/renderer.go b/renderer.go
old mode 100755
new mode 100644
index 5040dcea..7fa2b09c
--- a/renderer.go
+++ b/renderer.go
@@ -59,7 +59,7 @@ func getColorFromName(colorName string, isBackground bool) (string, error) {
return "", errors.New("color name does not exist")
}
-//Renderer writes colorized strings
+// Renderer writes colorized strings
type Renderer struct {
Buffer *bytes.Buffer
formats *formats
@@ -67,8 +67,10 @@ type Renderer struct {
}
const (
- //Transparent implies a transparent color
- Transparent string = "transparent"
+ // Transparent implies a transparent color
+ Transparent = "transparent"
+ zsh = "zsh"
+ bash = "bash"
)
func (r *Renderer) init(shell string) {
@@ -77,7 +79,7 @@ func (r *Renderer) init(shell string) {
rANSI: "[\u001B\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))",
}
switch shell {
- case "zsh":
+ case zsh:
r.formats.single = "%%{\x1b[%sm%%}%s%%{\x1b[0m%%}"
r.formats.full = "%%{\x1b[%sm\x1b[%sm%%}%s%%{\x1b[0m%%}"
r.formats.transparent = "%%{\x1b[%s;49m\x1b[7m%%}%s%%{\x1b[m\x1b[0m%%}"
@@ -87,7 +89,7 @@ func (r *Renderer) init(shell string) {
r.formats.title = "%%{\033]0;%s\007%%}"
r.formats.creset = "%{\x1b[0m%}"
r.formats.clearOEL = "%{\x1b[K%}"
- case "bash":
+ case bash:
r.formats.single = "\\[\x1b[%sm\\]%s\\[\x1b[0m\\]"
r.formats.full = "\\[\x1b[%sm\x1b[%sm\\]%s\\[\x1b[0m\\]"
r.formats.transparent = "\\[\x1b[%s;49m\x1b[7m\\]%s\\[\x1b[m\x1b[0m\\]"
@@ -122,7 +124,7 @@ func (r *Renderer) getAnsiFromColorString(colorString string, isBackground bool)
return style.Code()
}
-func (r *Renderer) writeColoredText(background string, foreground string, text string) {
+func (r *Renderer) writeColoredText(background, foreground, text string) {
var coloredText string
if foreground == Transparent && background != "" {
ansiColor := r.getAnsiFromColorString(background, false)
@@ -138,12 +140,12 @@ func (r *Renderer) writeColoredText(background string, foreground string, text s
r.Buffer.WriteString(coloredText)
}
-func (r *Renderer) writeAndRemoveText(background string, foreground string, text string, textToRemove string, parentText string) string {
+func (r *Renderer) writeAndRemoveText(background, foreground, text, textToRemove, parentText string) string {
r.writeColoredText(background, foreground, text)
return strings.Replace(parentText, textToRemove, "", 1)
}
-func (r *Renderer) write(background string, foreground string, text string) {
+func (r *Renderer) write(background, foreground, text string) {
// first we match for any potentially valid color enclosed in <>
rex := regexp.MustCompile(`<([#A-Za-z0-9]+)>(.*?)<\/>`)
match := rex.FindAllStringSubmatch(text, -1)
@@ -166,12 +168,12 @@ func (r *Renderer) lenWithoutANSI(str string) int {
re := regexp.MustCompile(r.formats.rANSI)
stripped := re.ReplaceAllString(str, "")
switch r.shell {
- case "zsh":
- stripped = strings.Replace(stripped, "%{", "", -1)
- stripped = strings.Replace(stripped, "%}", "", -1)
- case "bash":
- stripped = strings.Replace(stripped, "\\[", "", -1)
- stripped = strings.Replace(stripped, "\\]", "", -1)
+ case zsh:
+ stripped = strings.ReplaceAll(stripped, "%{", "")
+ stripped = strings.ReplaceAll(stripped, "%}", "")
+ case bash:
+ stripped = strings.ReplaceAll(stripped, "\\[", "")
+ stripped = strings.ReplaceAll(stripped, "\\]", "")
}
var i norm.Iter
i.InitString(norm.NFD, stripped)
diff --git a/renderer_test.go b/renderer_test.go
old mode 100755
new mode 100644
index b67bb6cc..a4afb7c0
--- a/renderer_test.go
+++ b/renderer_test.go
@@ -4,8 +4,12 @@ import (
"bytes"
"testing"
- "github.com/stretchr/testify/assert"
"github.com/gookit/color"
+ "github.com/stretchr/testify/assert"
+)
+
+const (
+ inputText = "This is white, <#ff5733>this is orange>, white again"
)
func TestWriteAndRemoveText(t *testing.T) {
@@ -13,7 +17,6 @@ func TestWriteAndRemoveText(t *testing.T) {
Buffer: new(bytes.Buffer),
}
renderer.init("pwsh")
- inputText := "This is white, <#ff5733>this is orange>, white again"
text := renderer.writeAndRemoveText("#193549", "#fff", "This is white, ", "This is white, ", inputText)
assert.Equal(t, "<#ff5733>this is orange>, white again", text)
assert.NotContains(t, renderer.string(), "<#ff5733>")
@@ -24,7 +27,6 @@ func TestWriteAndRemoveTextColored(t *testing.T) {
Buffer: new(bytes.Buffer),
}
renderer.init("pwsh")
- inputText := "This is white, <#ff5733>this is orange>, white again"
text := renderer.writeAndRemoveText("#193549", "#ff5733", "this is orange", "<#ff5733>this is orange>", inputText)
assert.Equal(t, "This is white, , white again", text)
assert.NotContains(t, renderer.string(), "<#ff5733>")
@@ -35,8 +37,7 @@ func TestWriteColorOverride(t *testing.T) {
Buffer: new(bytes.Buffer),
}
renderer.init("pwsh")
- text := "This is white, <#ff5733>this is orange>, white again"
- renderer.write("#193549", "#ff5733", text)
+ renderer.write("#193549", "#ff5733", inputText)
assert.NotContains(t, renderer.string(), "<#ff5733>")
}
diff --git a/segment.go b/segment.go
index 8a8f440b..e29d45fc 100644
--- a/segment.go
+++ b/segment.go
@@ -2,7 +2,7 @@ package main
import "errors"
-//Segment represent a single segment and it's configuration
+// Segment represent a single segment and it's configuration
type Segment struct {
Type SegmentType `json:"type"`
Style SegmentStyle `json:"style"`
@@ -19,65 +19,65 @@ type Segment struct {
active bool
}
-//SegmentWriter is the interface used to define what and if to write to the prompt
+// SegmentWriter is the interface used to define what and if to write to the prompt
type SegmentWriter interface {
enabled() bool
string() string
init(props *properties, env environmentInfo)
}
-//SegmentStyle the syle of segment, for more information, see the constants
+// SegmentStyle the syle of segment, for more information, see the constants
type SegmentStyle string
-//SegmentType the type of segment, for more information, see the constants
+// SegmentType the type of segment, for more information, see the constants
type SegmentType string
const (
- //Session represents the user info segment
+ // Session represents the user info segment
Session SegmentType = "session"
- //Path represents the current path segment
+ // Path represents the current path segment
Path SegmentType = "path"
- //Git represents the git status and information
+ // Git represents the git status and information
Git SegmentType = "git"
- //Exit writes the last exit code
+ // Exit writes the last exit code
Exit SegmentType = "exit"
- //Python writes the virtual env name
+ // Python writes the virtual env name
Python SegmentType = "python"
- //Root writes root symbol
+ // Root writes root symbol
Root SegmentType = "root"
- //Time writes the current timestamp
+ // Time writes the current timestamp
Time SegmentType = "time"
- //Text writes a text
+ // Text writes a text
Text SegmentType = "text"
- //Cmd writes the output of a shell command
+ // Cmd writes the output of a shell command
Cmd SegmentType = "command"
- //Battery writes the battery percentage
+ // Battery writes the battery percentage
Battery SegmentType = "battery"
- //Spotify writes the Spotify status for Mac
+ // Spotify writes the Spotify status for Mac
Spotify SegmentType = "spotify"
- //ShellInfo writes which shell we're currently in
+ // ShellInfo writes which shell we're currently in
ShellInfo SegmentType = "shell"
- //Node writes which node version is currently active
+ // Node writes which node version is currently active
Node SegmentType = "node"
- //Os write os specific icon
+ // Os write os specific icon
Os SegmentType = "os"
- //EnvVar writes the content of an environment variable
+ // EnvVar writes the content of an environment variable
EnvVar SegmentType = "envvar"
- //Az writes the Azure subscription info we're currently in
+ // Az writes the Azure subscription info we're currently in
Az SegmentType = "az"
- //Kubectl writes the Kubernetes context we're currently in
+ // Kubectl writes the Kubernetes context we're currently in
Kubectl SegmentType = "kubectl"
- //Dotnet writes which dotnet version is currently active
+ // Dotnet writes which dotnet version is currently active
Dotnet SegmentType = "dotnet"
- //Terraform writes the terraform workspace we're currently in
+ // Terraform writes the terraform workspace we're currently in
Terraform SegmentType = "terraform"
- //Golang writes which go version is currently active
+ // Golang writes which go version is currently active
Golang SegmentType = "go"
- //Powerline writes it Powerline style
+ // Powerline writes it Powerline style
Powerline SegmentStyle = "powerline"
- //Plain writes it without ornaments
+ // Plain writes it without ornaments
Plain SegmentStyle = "plain"
- //Diamond writes the prompt shaped with a leading and trailing symbol
+ // Diamond writes the prompt shaped with a leading and trailing symbol
Diamond SegmentStyle = "diamond"
)
@@ -144,5 +144,5 @@ func (segment *Segment) mapSegmentWithWriter(env environmentInfo) error {
segment.props = props
return nil
}
- return errors.New("Unable to map writer")
+ return errors.New("unable to map writer")
}
diff --git a/segment_az.go b/segment_az.go
index ce49c289..f8a73a9a 100644
--- a/segment_az.go
+++ b/segment_az.go
@@ -13,11 +13,11 @@ type az struct {
}
const (
- //SubscriptionInfoSeparator is put between the name and ID
+ // SubscriptionInfoSeparator is put between the name and ID
SubscriptionInfoSeparator Property = "info_separator"
- //DisplaySubscriptionID hides or show the subscription GUID
+ // DisplaySubscriptionID hides or show the subscription GUID
DisplaySubscriptionID Property = "display_id"
- //DisplaySubscriptionName hides or shows the subscription display name
+ // DisplaySubscriptionName hides or shows the subscription display name
DisplaySubscriptionName Property = "display_name"
)
diff --git a/segment_battery.go b/segment_battery.go
index f1f32a75..90bcea38 100644
--- a/segment_battery.go
+++ b/segment_battery.go
@@ -14,21 +14,21 @@ type batt struct {
}
const (
- //BatteryIcon to display in front of the battery
+ // BatteryIcon to display in front of the battery
BatteryIcon Property = "battery_icon"
- //DisplayError to display when an error occurs or not
+ // DisplayError to display when an error occurs or not
DisplayError Property = "display_error"
- //ChargingIcon to display when charging
+ // ChargingIcon to display when charging
ChargingIcon Property = "charging_icon"
- //DischargingIcon o display when discharging
+ // DischargingIcon o display when discharging
DischargingIcon Property = "discharging_icon"
- //ChargedIcon to display when fully charged
+ // ChargedIcon to display when fully charged
ChargedIcon Property = "charged_icon"
- //ChargedColor to display when fully charged
+ // ChargedColor to display when fully charged
ChargedColor Property = "charged_color"
- //ChargingColor to display when charging
+ // ChargingColor to display when charging
ChargingColor Property = "charging_color"
- //DischargingColor to display when discharging
+ // DischargingColor to display when discharging
DischargingColor Property = "discharging_color"
)
@@ -58,7 +58,7 @@ func (b *batt) enabled() bool {
case battery.Full:
colorPorperty = ChargedColor
icon = b.props.getString(ChargedIcon, "")
- default:
+ case battery.Empty, battery.Unknown:
b.percentageText = percentageText
return true
}
diff --git a/segment_battery_test.go b/segment_battery_test.go
index 1b6d18fb..b6d6f4a7 100644
--- a/segment_battery_test.go
+++ b/segment_battery_test.go
@@ -8,6 +8,10 @@ import (
"github.com/stretchr/testify/assert"
)
+const (
+ expectedColor = "#768954"
+)
+
func setupBatteryTests(state battery.State, batteryLevel float64, props *properties) *batt {
env := &MockedEnvironment{}
bt := &battery.Battery{
@@ -55,7 +59,7 @@ func TestBatteryDischarging(t *testing.T) {
}
func TestBatteryBackgroundColor(t *testing.T) {
- expected := "#768954"
+ expected := expectedColor
props := &properties{
background: "#111111",
values: map[Property]interface{}{
@@ -70,7 +74,7 @@ func TestBatteryBackgroundColor(t *testing.T) {
}
func TestBatteryBackgroundColorInvalid(t *testing.T) {
- expected := "#768954"
+ expected := expectedColor
props := &properties{
background: expected,
values: map[Property]interface{}{
@@ -85,7 +89,7 @@ func TestBatteryBackgroundColorInvalid(t *testing.T) {
}
func TestBatteryForegroundColor(t *testing.T) {
- expected := "#768954"
+ expected := expectedColor
props := &properties{
foreground: "#111111",
values: map[Property]interface{}{
@@ -100,7 +104,7 @@ func TestBatteryForegroundColor(t *testing.T) {
}
func TestBatteryForegroundColorInvalid(t *testing.T) {
- expected := "#768954"
+ expected := expectedColor
props := &properties{
foreground: expected,
values: map[Property]interface{}{
diff --git a/segment_command.go b/segment_command.go
index 3a52e390..cb9d35da 100644
--- a/segment_command.go
+++ b/segment_command.go
@@ -9,9 +9,9 @@ type command struct {
}
const (
- //ExecutableShell to execute command in
+ // ExecutableShell to execute command in
ExecutableShell Property = "shell"
- //Command to execute
+ // Command to execute
Command Property = "command"
)
diff --git a/segment_dotnet.go b/segment_dotnet.go
index e5a8e4e0..550ec43a 100644
--- a/segment_dotnet.go
+++ b/segment_dotnet.go
@@ -12,8 +12,8 @@ type dotnet struct {
}
const (
- //UnsupportedDotnetVersionIcon is displayed when the dotnet version in
- //the current folder isn't supported by the installed dotnet SDK set.
+ // UnsupportedDotnetVersionIcon is displayed when the dotnet version in
+ // the current folder isn't supported by the installed dotnet SDK set.
UnsupportedDotnetVersionIcon Property = "unsupported_version_icon"
)
diff --git a/segment_envar.go b/segment_envar.go
index 03fe3248..d403ab26 100644
--- a/segment_envar.go
+++ b/segment_envar.go
@@ -7,7 +7,7 @@ type envvar struct {
}
const (
- //VarName name of the variable
+ // VarName name of the variable
VarName Property = "var_name"
)
diff --git a/segment_exit.go b/segment_exit.go
index a9a2907b..2dce2d2f 100644
--- a/segment_exit.go
+++ b/segment_exit.go
@@ -8,11 +8,11 @@ type exit struct {
}
const (
- //DisplayExitCode shows or hides the error code
+ // DisplayExitCode shows or hides the error code
DisplayExitCode Property = "display_exit_code"
- //AlwaysEnabled decides whether or not to always display the exitcode info
+ // AlwaysEnabled decides whether or not to always display the exitcode info
AlwaysEnabled Property = "always_enabled"
- //ErrorColor specify a different foreground color for the error text when using always_show = true
+ // ErrorColor specify a different foreground color for the error text when using always_show = true
ErrorColor Property = "error_color"
)
diff --git a/segment_git.go b/segment_git.go
old mode 100755
new mode 100644
index 060e3473..649094e5
--- a/segment_git.go
+++ b/segment_git.go
@@ -28,7 +28,7 @@ type gitStatus struct {
changed bool
}
-func (s *gitStatus) string(prefix string, color string) string {
+func (s *gitStatus) string(prefix, color string) string {
var status string
stringIfValue := func(value int, prefix string) string {
if value > 0 {
@@ -54,63 +54,63 @@ type git struct {
}
const (
- //BranchIcon the icon to use as branch indicator
+ // BranchIcon the icon to use as branch indicator
BranchIcon Property = "branch_icon"
- //BranchIdenticalIcon the icon to display when the remote and local branch are identical
+ // BranchIdenticalIcon the icon to display when the remote and local branch are identical
BranchIdenticalIcon Property = "branch_identical_icon"
- //BranchAheadIcon the icon to display when the local branch is ahead of the remote
+ // BranchAheadIcon the icon to display when the local branch is ahead of the remote
BranchAheadIcon Property = "branch_ahead_icon"
- //BranchBehindIcon the icon to display when the local branch is behind the remote
+ // BranchBehindIcon the icon to display when the local branch is behind the remote
BranchBehindIcon Property = "branch_behind_icon"
- //BranchGoneIcon the icon to use when ther's no remote
+ // BranchGoneIcon the icon to use when ther's no remote
BranchGoneIcon Property = "branch_gone_icon"
- //LocalWorkingIcon the icon to use as the local working area changes indicator
+ // LocalWorkingIcon the icon to use as the local working area changes indicator
LocalWorkingIcon Property = "local_working_icon"
- //LocalStagingIcon the icon to use as the local staging area changes indicator
+ // LocalStagingIcon the icon to use as the local staging area changes indicator
LocalStagingIcon Property = "local_staged_icon"
- //DisplayStatus shows the status of the repository
+ // DisplayStatus shows the status of the repository
DisplayStatus Property = "display_status"
- //DisplayStatusDetail shows the detailed status of the repository
+ // DisplayStatusDetail shows the detailed status of the repository
DisplayStatusDetail Property = "display_status_detail"
- //RebaseIcon shows before the rebase context
+ // RebaseIcon shows before the rebase context
RebaseIcon Property = "rebase_icon"
- //CherryPickIcon shows before the cherry-pick context
+ // CherryPickIcon shows before the cherry-pick context
CherryPickIcon Property = "cherry_pick_icon"
- //CommitIcon shows before the detached context
+ // CommitIcon shows before the detached context
CommitIcon Property = "commit_icon"
- //TagIcon shows before the tag context
+ // TagIcon shows before the tag context
TagIcon Property = "tag_icon"
- //DisplayStashCount show stash count or not
+ // DisplayStashCount show stash count or not
DisplayStashCount Property = "display_stash_count"
- //StashCountIcon shows before the stash context
+ // StashCountIcon shows before the stash context
StashCountIcon Property = "stash_count_icon"
- //StatusSeparatorIcon shows between staging and working area
+ // StatusSeparatorIcon shows between staging and working area
StatusSeparatorIcon Property = "status_separator_icon"
- //MergeIcon shows before the merge context
+ // MergeIcon shows before the merge context
MergeIcon Property = "merge_icon"
- //DisplayUpstreamIcon show or hide the upstream icon
+ // DisplayUpstreamIcon show or hide the upstream icon
DisplayUpstreamIcon Property = "display_upstream_icon"
- //GithubIcon shows√ when upstream is github
+ // GithubIcon shows√ when upstream is github
GithubIcon Property = "github_icon"
- //BitbucketIcon shows when upstream is bitbucket
+ // BitbucketIcon shows when upstream is bitbucket
BitbucketIcon Property = "bitbucket_icon"
- //GitlabIcon shows when upstream is gitlab
+ // GitlabIcon shows when upstream is gitlab
GitlabIcon Property = "gitlab_icon"
- //GitIcon shows when the upstream can't be identified
+ // GitIcon shows when the upstream can't be identified
GitIcon Property = "git_icon"
- //WorkingColor if set, the color to use on the working area
+ // WorkingColor if set, the color to use on the working area
WorkingColor Property = "working_color"
- //StagingColor if set, the color to use on the staging area
+ // StagingColor if set, the color to use on the staging area
StagingColor Property = "staging_color"
- //StatusColorsEnabled enables status colors
+ // StatusColorsEnabled enables status colors
StatusColorsEnabled Property = "status_colors_enabled"
- //LocalChangesColor if set, the color to use when there are local changes
+ // LocalChangesColor if set, the color to use when there are local changes
LocalChangesColor Property = "local_changes_color"
- //AheadAndBehindColor if set, the color to use when the branch is ahead and behind the remote
+ // AheadAndBehindColor if set, the color to use when the branch is ahead and behind the remote
AheadAndBehindColor Property = "ahead_and_behind_color"
- //BehindColor if set, the color to use when the branch is ahead and behind the remote
+ // BehindColor if set, the color to use when the branch is ahead and behind the remote
BehindColor Property = "behind_color"
- //AheadColor if set, the color to use when the branch is ahead and behind the remote
+ // AheadColor if set, the color to use when the branch is ahead and behind the remote
AheadColor Property = "ahead_color"
)
@@ -170,7 +170,7 @@ func (g *git) init(props *properties, env environmentInfo) {
g.env = env
}
-func (g *git) getStatusDetailString(status *gitStatus, color Property, icon Property, defaultIcon string) string {
+func (g *git) getStatusDetailString(status *gitStatus, color, icon Property, defaultIcon string) string {
prefix := g.props.getString(icon, defaultIcon)
foregroundColor := g.props.getColor(color, g.props.foreground)
if !g.props.getBool(DisplayStatusDetail, true) {
diff --git a/segment_git_test.go b/segment_git_test.go
old mode 100755
new mode 100644
index ac39bde9..3e6f43dd
--- a/segment_git_test.go
+++ b/segment_git_test.go
@@ -6,6 +6,10 @@ import (
"github.com/stretchr/testify/assert"
)
+const (
+ changesColor = "#BD8BDE"
+)
+
func TestEnabledGitNotFound(t *testing.T) {
env := new(MockedEnvironment)
env.On("hasCommand", "git").Return(false)
@@ -70,12 +74,12 @@ func setupHEADContextEnv(context *detachedContext) *git {
env.On("getFileContent", "/.git/MERGE_HEAD").Return(context.mergeHEAD)
env.On("hasFiles", "/.git/CHERRY_PICK_HEAD").Return(context.cherryPick)
env.On("hasFiles", "/.git/MERGE_HEAD").Return(context.merge)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "rev-parse", "--short", "HEAD"}).Return(context.currentCommit, nil)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "describe", "--tags", "--exact-match"}).Return(context.tagName, nil)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "name-rev", "--name-only", "--exclude=tags/*", context.origin}).Return(context.origin, nil)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "name-rev", "--name-only", "--exclude=tags/*", context.onto}).Return(context.onto, nil)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "name-rev", "--name-only", "--exclude=tags/*", context.cherryPickSHA}).Return(context.cherryPickSHA, nil)
- env.On("runCommand", "git", []string{"-c", "core.quotepath=false", "-c", "color.status=false", "name-rev", "--name-only", "--exclude=tags/*", context.mergeHEAD}).Return(context.mergeHEAD, nil)
+ env.mockGitCommand(context.currentCommit, "rev-parse", "--short", "HEAD")
+ env.mockGitCommand(context.tagName, "describe", "--tags", "--exact-match")
+ env.mockGitCommand(context.origin, "name-rev", "--name-only", "--exclude=tags/*", context.origin)
+ env.mockGitCommand(context.onto, "name-rev", "--name-only", "--exclude=tags/*", context.onto)
+ env.mockGitCommand(context.cherryPickSHA, "name-rev", "--name-only", "--exclude=tags/*", context.cherryPickSHA)
+ env.mockGitCommand(context.mergeHEAD, "name-rev", "--name-only", "--exclude=tags/*", context.mergeHEAD)
g := &git{
env: env,
repo: &gitRepo{
@@ -85,6 +89,11 @@ func setupHEADContextEnv(context *detachedContext) *git {
return g
}
+func (m *MockedEnvironment) mockGitCommand(returnValue string, args ...string) {
+ args = append([]string{"-c", "core.quotepath=false", "-c", "color.status=false"}, args...)
+ m.On("runCommand", "git", args).Return(returnValue, nil)
+}
+
func TestGetGitDetachedCommitHash(t *testing.T) {
want := "\uf417lalasha1"
context := &detachedContext{
@@ -411,7 +420,7 @@ func TestGetUpstreamSymbolGit(t *testing.T) {
}
func TestGetStatusColorLocalChangesStaging(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{
changed: true,
@@ -429,7 +438,7 @@ func TestGetStatusColorLocalChangesStaging(t *testing.T) {
}
func TestGetStatusColorLocalChangesWorking(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{},
working: &gitStatus{
@@ -448,7 +457,7 @@ func TestGetStatusColorLocalChangesWorking(t *testing.T) {
}
func TestGetStatusColorAheadAndBehind(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{},
working: &gitStatus{},
@@ -467,7 +476,7 @@ func TestGetStatusColorAheadAndBehind(t *testing.T) {
}
func TestGetStatusColorAhead(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{},
working: &gitStatus{},
@@ -486,7 +495,7 @@ func TestGetStatusColorAhead(t *testing.T) {
}
func TestGetStatusColorBehind(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{},
working: &gitStatus{},
@@ -505,7 +514,7 @@ func TestGetStatusColorBehind(t *testing.T) {
}
func TestGetStatusColorDefault(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{},
working: &gitStatus{},
@@ -516,7 +525,7 @@ func TestGetStatusColorDefault(t *testing.T) {
repo: repo,
props: &properties{
values: map[Property]interface{}{
- BehindColor: "#BD8BDE",
+ BehindColor: changesColor,
},
},
}
@@ -524,7 +533,7 @@ func TestGetStatusColorDefault(t *testing.T) {
}
func TestSetStatusColorBackground(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{
changed: true,
@@ -534,7 +543,7 @@ func TestSetStatusColorBackground(t *testing.T) {
repo: repo,
props: &properties{
values: map[Property]interface{}{
- LocalChangesColor: "#BD8BDE",
+ LocalChangesColor: changesColor,
ColorBackground: false,
},
foreground: "#ffffff",
@@ -546,7 +555,7 @@ func TestSetStatusColorBackground(t *testing.T) {
}
func TestSetStatusColorForeground(t *testing.T) {
- expected := "#BD8BDE"
+ expected := changesColor
repo := &gitRepo{
staging: &gitStatus{
changed: true,
@@ -556,7 +565,7 @@ func TestSetStatusColorForeground(t *testing.T) {
repo: repo,
props: &properties{
values: map[Property]interface{}{
- LocalChangesColor: "#BD8BDE",
+ LocalChangesColor: changesColor,
ColorBackground: true,
},
foreground: "#ffffff",
diff --git a/segment_golang_test.go b/segment_golang_test.go
old mode 100755
new mode 100644
diff --git a/segment_kubectl_test.go b/segment_kubectl_test.go
old mode 100755
new mode 100644
diff --git a/segment_node_test.go b/segment_node_test.go
old mode 100755
new mode 100644
index cea9d6a3..f9fc4fab
--- a/segment_node_test.go
+++ b/segment_node_test.go
@@ -6,6 +6,10 @@ import (
"github.com/stretchr/testify/assert"
)
+const (
+ node114 = "1.14"
+)
+
type nodeArgs struct {
enabled bool
nodeVersion string
@@ -49,7 +53,7 @@ func TestNodeWriterDisabledNoJSorTSFiles(t *testing.T) {
}
func TestNodeEnabledJSFiles(t *testing.T) {
- expected := "1.14"
+ expected := node114
args := &nodeArgs{
enabled: true,
nodeVersion: expected,
@@ -62,7 +66,7 @@ func TestNodeEnabledJSFiles(t *testing.T) {
}
func TestNodeEnabledTsFiles(t *testing.T) {
- expected := "1.14"
+ expected := node114
args := &nodeArgs{
enabled: true,
nodeVersion: expected,
@@ -75,7 +79,7 @@ func TestNodeEnabledTsFiles(t *testing.T) {
}
func TestNodeEnabledJsAndTsFiles(t *testing.T) {
- expected := "1.14"
+ expected := node114
args := &nodeArgs{
enabled: true,
nodeVersion: expected,
@@ -92,7 +96,7 @@ func TestNodeEnabledNoVersion(t *testing.T) {
expected := ""
args := &nodeArgs{
enabled: true,
- nodeVersion: "1.14",
+ nodeVersion: node114,
hasJS: true,
displayVersion: false,
}
@@ -102,7 +106,7 @@ func TestNodeEnabledNoVersion(t *testing.T) {
}
func TestNodeEnabledNodeVersion(t *testing.T) {
- expected := "1.14"
+ expected := node114
args := &nodeArgs{
enabled: true,
nodeVersion: expected,
diff --git a/segment_os.go b/segment_os.go
index 83dc9a35..00afe790 100644
--- a/segment_os.go
+++ b/segment_os.go
@@ -10,53 +10,53 @@ type osInfo struct {
}
const (
- //MacOS the string/icon to use for MacOS
+ // MacOS the string/icon to use for MacOS
MacOS Property = "macos"
- //Linux the string/icon to use for linux
+ // Linux the string/icon to use for linux
Linux Property = "linux"
- //Windows the string/icon to use for windows
+ // Windows the string/icon to use for windows
Windows Property = "windows"
- //WSL the string/icon to use for WSL
+ // WSL the string/icon to use for WSL
WSL Property = "wsl"
- //WSLSeparator shows between WSL and Linux properties when WSL is detected
+ // WSLSeparator shows between WSL and Linux properties when WSL is detected
WSLSeparator Property = "wsl_separator"
- //Alpine the string/icon to use for Alpine
+ // Alpine the string/icon to use for Alpine
Alpine Property = "alpine"
- //Aosc the string/icon to use for Aosc
+ // Aosc the string/icon to use for Aosc
Aosc Property = "aosc"
- //Arch the string/icon to use for Arch
+ // Arch the string/icon to use for Arch
Arch Property = "arch"
- //Centos the string/icon to use for Centos
+ // Centos the string/icon to use for Centos
Centos Property = "centos"
- //Coreos the string/icon to use for Coreos
+ // Coreos the string/icon to use for Coreos
Coreos Property = "coreos"
- //Debian the string/icon to use for Debian
+ // Debian the string/icon to use for Debian
Debian Property = "debian"
- //Devuan the string/icon to use for Devuan
+ // Devuan the string/icon to use for Devuan
Devuan Property = "devuan"
- //Raspbian the string/icon to use for Raspbian
+ // Raspbian the string/icon to use for Raspbian
Raspbian Property = "raspbian"
- //Elementary the string/icon to use for Elementary
+ // Elementary the string/icon to use for Elementary
Elementary Property = "elementary"
- //Fedora the string/icon to use for Fedora
+ // Fedora the string/icon to use for Fedora
Fedora Property = "fedora"
- //Gentoo the string/icon to use for Gentoo
+ // Gentoo the string/icon to use for Gentoo
Gentoo Property = "gentoo"
- //Mageia the string/icon to use for Mageia
+ // Mageia the string/icon to use for Mageia
Mageia Property = "mageia"
- //Manjaro the string/icon to use for Manjaro
+ // Manjaro the string/icon to use for Manjaro
Manjaro Property = "manjaro"
- //Mint the string/icon to use for Mint
+ // Mint the string/icon to use for Mint
Mint Property = "mint"
- //Nixos the string/icon to use for Nixos
+ // Nixos the string/icon to use for Nixos
Nixos Property = "nixos"
- //Opensuse the string/icon to use for Opensuse
+ // Opensuse the string/icon to use for Opensuse
Opensuse Property = "opensuse"
- //Sabayon the string/icon to use for Sabayon
+ // Sabayon the string/icon to use for Sabayon
Sabayon Property = "sabayon"
- //Slackware the string/icon to use for Slackware
+ // Slackware the string/icon to use for Slackware
Slackware Property = "slackware"
- //Ubuntu the string/icon to use for Ubuntu
+ // Ubuntu the string/icon to use for Ubuntu
Ubuntu Property = "ubuntu"
)
@@ -67,7 +67,7 @@ func (n *osInfo) enabled() bool {
func (n *osInfo) string() string {
goos := n.env.getRuntimeGOOS()
switch goos {
- case "windows":
+ case windowsPlatform:
return n.props.getString(Windows, "\uE62A")
case "darwin":
return n.props.getString(MacOS, "\uF179")
diff --git a/segment_os_test.go b/segment_os_test.go
index 22df4e0e..fe26546e 100644
--- a/segment_os_test.go
+++ b/segment_os_test.go
@@ -15,7 +15,7 @@ func TestOsInfo(t *testing.T) {
background: "#000",
}
osInfo := &osInfo{
- env: env,
+ env: env,
props: props,
}
want := "win"
@@ -30,12 +30,12 @@ func TestWSL(t *testing.T) {
env.On("getPlatform", nil).Return("debian")
props := &properties{
values: map[Property]interface{}{
- WSL: "WSL TEST",
+ WSL: "WSL TEST",
WSLSeparator: " @ ",
},
}
osInfo := &osInfo{
- env: env,
+ env: env,
props: props,
}
want := "WSL TEST @ \uF306"
diff --git a/segment_path.go b/segment_path.go
old mode 100755
new mode 100644
index 1491ace8..f49a866e
--- a/segment_path.go
+++ b/segment_path.go
@@ -13,23 +13,23 @@ type path struct {
}
const (
- //FolderSeparatorIcon the path which is split will be separated by this icon
+ // FolderSeparatorIcon the path which is split will be separated by this icon
FolderSeparatorIcon Property = "folder_separator_icon"
- //HomeIcon indicates the $HOME location
+ // HomeIcon indicates the $HOME location
HomeIcon Property = "home_icon"
- //FolderIcon identifies one folder
+ // FolderIcon identifies one folder
FolderIcon Property = "folder_icon"
- //WindowsRegistryIcon indicates the registry location on Windows
+ // WindowsRegistryIcon indicates the registry location on Windows
WindowsRegistryIcon Property = "windows_registry_icon"
- //Agnoster displays a short path with separator icon, this the default style
+ // Agnoster displays a short path with separator icon, this the default style
Agnoster string = "agnoster"
- //AgnosterFull displays all the folder names with the folder_separator_icon
+ // AgnosterFull displays all the folder names with the folder_separator_icon
AgnosterFull string = "agnoster_full"
- //Short displays a shorter path
+ // Short displays a shorter path
Short string = "short"
- //Full displays the full path
+ // Full displays the full path
Full string = "full"
- //Folder displays the current folder
+ // Folder displays the current folder
Folder string = "folder"
)
@@ -96,7 +96,7 @@ func (pt *path) getAgnosterFullPath() string {
if string(pwd[0]) == pathSeparator {
pwd = pwd[1:]
}
- return strings.Replace(pwd, pathSeparator, folderSeparator, -1)
+ return strings.ReplaceAll(pwd, pathSeparator, folderSeparator)
}
func (pt *path) inHomeDir(pwd string) bool {
@@ -104,7 +104,7 @@ func (pt *path) inHomeDir(pwd string) bool {
}
func (pt *path) rootLocation(pwd string) string {
- //See https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/correcting-powershell-paths
+ // See https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/correcting-powershell-paths
if strings.HasPrefix(pwd, "Microsoft.PowerShell.Core\\FileSystem::") {
pwd = strings.Replace(pwd, "Microsoft.PowerShell.Core\\FileSystem::", "", 1)
}
@@ -162,7 +162,7 @@ func base(path string, env environmentInfo) string {
}
// If empty now, it had only slashes.
if path == "" {
- return string(env.getPathSeperator())
+ return env.getPathSeperator()
}
return path
}
diff --git a/segment_path_test.go b/segment_path_test.go
old mode 100755
new mode 100644
index 86d7597f..991cd330
--- a/segment_path_test.go
+++ b/segment_path_test.go
@@ -78,7 +78,7 @@ func (env *MockedEnvironment) runCommand(command string, args ...string) (string
return arguments.String(0), arguments.Error(1)
}
-func (env *MockedEnvironment) runShellCommand(shell string, command string) string {
+func (env *MockedEnvironment) runShellCommand(shell, command string) string {
args := env.Called(shell, command)
return args.String(0)
}
@@ -108,13 +108,21 @@ func (env *MockedEnvironment) getShellName() string {
return args.String(0)
}
-func (env *MockedEnvironment) getWindowTitle(imageName string, windowTitleRegex string) (string, error) {
+func (env *MockedEnvironment) getWindowTitle(imageName, windowTitleRegex string) (string, error) {
args := env.Called(imageName)
return args.String(0), args.Error(1)
}
+const (
+ homeGates = "/home/gates"
+ homeBill = "/home/bill"
+ homeJan = "/usr/home/jan"
+ homeBillWindows = "C:\\Users\\Bill"
+ levelDir = "/level"
+)
+
func TestIsInHomeDirTrue(t *testing.T) {
- home := "/home/bill"
+ home := homeBill
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
path := &path{
@@ -126,10 +134,10 @@ func TestIsInHomeDirTrue(t *testing.T) {
func TestIsInHomeDirLevelTrue(t *testing.T) {
level := rand.Intn(100)
- home := "/home/bill"
+ home := homeBill
pwd := home
for i := 0; i < level; i++ {
- pwd += "/level"
+ pwd += levelDir
}
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -250,7 +258,7 @@ func TestRootLocationEmptyDir(t *testing.T) {
}
func TestIsInHomeDirFalse(t *testing.T) {
- home := "/home/bill"
+ home := homeBill
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
path := &path{
@@ -261,7 +269,7 @@ func TestIsInHomeDirFalse(t *testing.T) {
}
func TestPathDepthInHome(t *testing.T) {
- home := "/home/bill"
+ home := homeBill
pwd := home
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -288,10 +296,10 @@ func TestPathDepthInHomeTrailing(t *testing.T) {
func TestPathDepthInHomeMultipleLevelsDeep(t *testing.T) {
level := rand.Intn(100)
- home := "/home/bill"
+ home := homeBill
pwd := home
for i := 0; i < level; i++ {
- pwd += "/level"
+ pwd += levelDir
}
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -305,10 +313,10 @@ func TestPathDepthInHomeMultipleLevelsDeep(t *testing.T) {
func TestPathDepthOutsideHomeMultipleLevelsDeep(t *testing.T) {
level := rand.Intn(100)
- home := "/home/gates"
+ home := homeGates
pwd := "/usr"
for i := 0; i < level; i++ {
- pwd += "/level"
+ pwd += levelDir
}
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -321,7 +329,7 @@ func TestPathDepthOutsideHomeMultipleLevelsDeep(t *testing.T) {
}
func TestPathDepthOutsideHomeZeroLevelsDeep(t *testing.T) {
- home := "/home/gates"
+ home := homeGates
pwd := "/usr/"
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -334,7 +342,7 @@ func TestPathDepthOutsideHomeZeroLevelsDeep(t *testing.T) {
}
func TestPathDepthOutsideHomeOneLevelDeep(t *testing.T) {
- home := "/home/gates"
+ home := homeGates
pwd := "/usr/location"
env := new(MockedEnvironment)
env.On("homeDir", nil).Return(home)
@@ -363,7 +371,7 @@ func TestGetAgnosterFullPath(t *testing.T) {
assert.Equal(t, "usr > location > whatever", got)
}
-func testWritePathInfo(home string, pwd string, pathSeparator string) string {
+func testWritePathInfo(home, pwd, pathSeparator string) string {
props := &properties{
values: map[Property]interface{}{
FolderSeparatorIcon: " > ",
@@ -383,14 +391,14 @@ func testWritePathInfo(home string, pwd string, pathSeparator string) string {
}
func TestWritePathInfoWindowsOutsideHome(t *testing.T) {
- home := "C:\\Users\\Bill"
+ home := homeBillWindows
want := "C: > f > f > location"
got := testWritePathInfo(home, "C:\\Program Files\\Go\\location", "\\")
assert.Equal(t, want, got)
}
func TestWritePathInfoWindowsInsideHome(t *testing.T) {
- home := "C:\\Users\\Bill"
+ home := homeBillWindows
location := home + "\\Documents\\Bill\\location"
want := "~ > f > f > location"
got := testWritePathInfo(home, location, "\\")
@@ -398,28 +406,28 @@ func TestWritePathInfoWindowsInsideHome(t *testing.T) {
}
func TestWritePathInfoWindowsOutsideHomeZeroLevels(t *testing.T) {
- home := "C:\\Users\\Bill"
+ home := homeBillWindows
want := "C: > location"
got := testWritePathInfo(home, "C:\\location", "\\")
assert.Equal(t, want, got)
}
func TestWritePathInfoWindowsOutsideHomeOneLevels(t *testing.T) {
- home := "C:\\Users\\Bill"
+ home := homeBillWindows
want := "C: > f > location"
got := testWritePathInfo(home, "C:\\Program Files\\location", "\\")
assert.Equal(t, want, got)
}
func TestWritePathInfoUnixOutsideHome(t *testing.T) {
- home := "/usr/home/jan"
+ home := homeJan
want := "mnt > f > f > location"
got := testWritePathInfo(home, "/mnt/go/test/location", "/")
assert.Equal(t, want, got)
}
func TestWritePathInfoUnixInsideHome(t *testing.T) {
- home := "/usr/home/jan"
+ home := homeJan
location := home + "/docs/jan/location"
want := "~ > f > f > location"
got := testWritePathInfo(home, location, "/")
@@ -427,14 +435,14 @@ func TestWritePathInfoUnixInsideHome(t *testing.T) {
}
func TestWritePathInfoUnixOutsideHomeZeroLevels(t *testing.T) {
- home := "/usr/home/jan"
+ home := homeJan
want := "mnt > location"
got := testWritePathInfo(home, "/mnt/location", "/")
assert.Equal(t, want, got)
}
func TestWritePathInfoUnixOutsideHomeOneLevels(t *testing.T) {
- home := "/usr/home/jan"
+ home := homeJan
want := "mnt > f > location"
got := testWritePathInfo(home, "/mnt/folder/location", "/")
assert.Equal(t, want, got)
diff --git a/segment_python.go b/segment_python.go
index 371e7175..6deb41d3 100644
--- a/segment_python.go
+++ b/segment_python.go
@@ -14,7 +14,7 @@ type python struct {
}
const (
- //DisplayVirtualEnv shows or hides the virtual env
+ // DisplayVirtualEnv shows or hides the virtual env
DisplayVirtualEnv Property = "display_virtual_env"
)
@@ -46,7 +46,7 @@ func (p *python) enabled() bool {
p.pythonVersion = strings.Trim(values["version"], " ")
break
}
- //last element, Python isn't installed on this machine
+ // last element, Python isn't installed on this machine
if index == len(pythonVersions)-1 {
return false
}
diff --git a/segment_python_test.go b/segment_python_test.go
old mode 100755
new mode 100644
index 8301e124..3c8179dc
--- a/segment_python_test.go
+++ b/segment_python_test.go
@@ -50,11 +50,15 @@ func bootStrapPythonTest(args *pythonArgs) *python {
return python
}
+const (
+ python345 = "Python 3.4.5"
+)
+
func TestPythonWriterDisabledNoPythonFiles(t *testing.T) {
args := newPythonArgs()
args.hasPyFiles = false
args.hasNotebookFiles = false
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
python := bootStrapPythonTest(args)
assert.False(t, python.enabled(), "there are no Python files in the current folder")
}
@@ -63,7 +67,7 @@ func TestPythonWriterDisabledHasPythonFiles(t *testing.T) {
args := newPythonArgs()
args.hasPyFiles = true
args.hasNotebookFiles = false
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
python := bootStrapPythonTest(args)
assert.True(t, python.enabled(), "there should be a Python file in the current folder")
}
@@ -72,7 +76,7 @@ func TestPythonWriterDisabledHasJupyterNotebookFiles(t *testing.T) {
args := newPythonArgs()
args.hasPyFiles = false
args.hasNotebookFiles = true
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
python := bootStrapPythonTest(args)
assert.True(t, python.enabled(), "there should be a Jupyter Notebook file in the current folder")
}
@@ -81,7 +85,7 @@ func TestPythonWriterDisabledHasPyAndJupyterNotebookFiles(t *testing.T) {
args := newPythonArgs()
args.hasPyFiles = true
args.hasNotebookFiles = true
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
python := bootStrapPythonTest(args)
assert.True(t, python.enabled(), "there should be a Jupyter Notebook file in the current folder")
}
@@ -102,7 +106,7 @@ func TestPythonWriterDisabledNoPythonInstalled(t *testing.T) {
func TestPythonWriterEnabledNoVirtualEnv(t *testing.T) {
args := newPythonArgs()
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
python := bootStrapPythonTest(args)
assert.True(t, python.enabled())
assert.Equal(t, "3.4.5", python.string())
@@ -110,7 +114,7 @@ func TestPythonWriterEnabledNoVirtualEnv(t *testing.T) {
func TestPythonWriterEnabledVirtualEnvOverrule(t *testing.T) {
args := newPythonArgs()
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
args.condaEnvName = "myenv"
props := &properties{
values: map[Property]interface{}{
@@ -125,7 +129,7 @@ func TestPythonWriterEnabledVirtualEnvOverrule(t *testing.T) {
func TestPythonWriterEnabledVirtualEnv(t *testing.T) {
args := newPythonArgs()
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
args.condaEnvName = "myenv"
expected := fmt.Sprintf("%s %s", args.condaEnvName, "3.4.5")
props := &properties{
@@ -142,7 +146,7 @@ func TestPythonWriterEnabledVirtualEnv(t *testing.T) {
func TestPythonWriterEnabledWithVirtualEnv(t *testing.T) {
args := newPythonArgs()
args.virtualEnvName = "venv"
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
expected := fmt.Sprintf("%s %s", args.virtualEnvName, "3.4.5")
python := bootStrapPythonTest(args)
assert.True(t, python.enabled())
@@ -162,7 +166,7 @@ func TestPythonWriterEnabledWithCondaEnvPath(t *testing.T) {
func TestPythonWriterEnabledWithCondaDefaultEnv(t *testing.T) {
args := newPythonArgs()
args.condaDefaultName = "conda2"
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
expected := fmt.Sprintf("%s %s", args.condaDefaultName, "3.4.5")
python := bootStrapPythonTest(args)
assert.True(t, python.enabled())
@@ -183,7 +187,7 @@ func TestPythonWriterEnabledWithTwoValidEnvs(t *testing.T) {
args := newPythonArgs()
args.condaEnvName = "conda"
args.condaDefaultName = "conda2"
- args.python3Version = "Python 3.4.5"
+ args.python3Version = python345
expected := fmt.Sprintf("%s %s", args.condaEnvName, "3.4.5")
python := bootStrapPythonTest(args)
assert.True(t, python.enabled())
diff --git a/segment_root.go b/segment_root.go
index d6d0d93a..a844ef53 100644
--- a/segment_root.go
+++ b/segment_root.go
@@ -6,7 +6,7 @@ type root struct {
}
const (
- //RootIcon indicates the root user
+ // RootIcon indicates the root user
RootIcon Property = "root_icon"
)
diff --git a/segment_session.go b/segment_session.go
old mode 100755
new mode 100644
index 95454339..e3901744
--- a/segment_session.go
+++ b/segment_session.go
@@ -11,17 +11,17 @@ type session struct {
}
const (
- //UserInfoSeparator is put between the user and computer name
+ // UserInfoSeparator is put between the user and computer name
UserInfoSeparator Property = "user_info_separator"
- //UserColor if set, is used to color the user name
+ // UserColor if set, is used to color the user name
UserColor Property = "user_color"
- //HostColor if set, is used to color the computer name
+ // HostColor if set, is used to color the computer name
HostColor Property = "host_color"
- //DisplayHost hides or show the computer name
+ // DisplayHost hides or show the computer name
DisplayHost Property = "display_host"
- //DisplayUser hides or shows the user name
+ // DisplayUser hides or shows the user name
DisplayUser Property = "display_user"
- //SSHIcon shows when in an SSH session
+ // SSHIcon shows when in an SSH session
SSHIcon Property = "ssh_icon"
)
@@ -49,7 +49,9 @@ func (s *session) getFormattedText() string {
if s.activeSSHSession() {
ssh = s.props.getString(SSHIcon, "\uF817 ")
}
- return fmt.Sprintf("%s<%s>%s>%s<%s>%s>", ssh, s.props.getColor(UserColor, s.props.foreground), username, separator, s.props.getColor(HostColor, s.props.foreground), computername)
+ userColor := s.props.getColor(UserColor, s.props.foreground)
+ hostColor := s.props.getColor(HostColor, s.props.foreground)
+ return fmt.Sprintf("%s<%s>%s>%s<%s>%s>", ssh, userColor, username, separator, hostColor, computername)
}
func (s *session) getComputerName() string {
diff --git a/segment_session_test.go b/segment_session_test.go
old mode 100755
new mode 100644
diff --git a/segment_shell_test.go b/segment_shell_test.go
old mode 100755
new mode 100644
diff --git a/segment_spotify.go b/segment_spotify.go
index 109eab1d..0d8e93af 100644
--- a/segment_spotify.go
+++ b/segment_spotify.go
@@ -13,13 +13,13 @@ type spotify struct {
}
const (
- //PlayingIcon indicates a song is playing
+ // PlayingIcon indicates a song is playing
PlayingIcon Property = "playing_icon"
- //PausedIcon indicates a song is paused
+ // PausedIcon indicates a song is paused
PausedIcon Property = "paused_icon"
- //StoppedIcon indicates a song is stopped
+ // StoppedIcon indicates a song is stopped
StoppedIcon Property = "stopped_icon"
- //TrackSeparator is put between the artist and the track
+ // TrackSeparator is put between the artist and the track
TrackSeparator Property = "track_separator"
)
diff --git a/segment_spotify_darwin_test.go b/segment_spotify_darwin_test.go
index 56c7a4cb..830386cf 100644
--- a/segment_spotify_darwin_test.go
+++ b/segment_spotify_darwin_test.go
@@ -9,18 +9,19 @@ import (
)
type spotifyArgs struct {
- spotifyDarwinRunning string
- spotifyDarwinStatus string
- spotifyDarwinArtist string
- spotifyDarwinTrack string
+ running string
+ status string
+ artist string
+ track string
+ runError error
}
func bootStrapSpotifyDarwinTest(args *spotifyArgs) *spotify {
env := new(MockedEnvironment)
- env.On("runCommand", "osascript", []string{"-e", "application \"Spotify\" is running"}).Return(args.spotifyDarwinRunning, nil)
- env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to player state as string"}).Return(args.spotifyDarwinStatus, nil)
- env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to artist of current track as string"}).Return(args.spotifyDarwinArtist, nil)
- env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to name of current track as string"}).Return(args.spotifyDarwinTrack, nil)
+ env.On("runCommand", "osascript", []string{"-e", "application \"Spotify\" is running"}).Return(args.running, args.runError)
+ env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to player state as string"}).Return(args.status, nil)
+ env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to artist of current track as string"}).Return(args.artist, nil)
+ env.On("runCommand", "osascript", []string{"-e", "tell application \"Spotify\" to name of current track as string"}).Return(args.track, nil)
props := &properties{}
s := &spotify{
env: env,
@@ -31,7 +32,7 @@ func bootStrapSpotifyDarwinTest(args *spotifyArgs) *spotify {
func TestSpotifyDarwinEnabledAndSpotifyNotRunning(t *testing.T) {
args := &spotifyArgs{
- spotifyDarwinRunning: "false",
+ running: "false",
}
s := bootStrapSpotifyDarwinTest(args)
assert.Equal(t, false, s.enabled())
@@ -39,10 +40,10 @@ func TestSpotifyDarwinEnabledAndSpotifyNotRunning(t *testing.T) {
func TestSpotifyDarwinEnabledAndSpotifyPlaying(t *testing.T) {
args := &spotifyArgs{
- spotifyDarwinRunning: "true",
- spotifyDarwinStatus: "playing",
- spotifyDarwinArtist: "Candlemass",
- spotifyDarwinTrack: "Spellbreaker",
+ running: "true",
+ status: "playing",
+ artist: "Candlemass",
+ track: "Spellbreaker",
}
s := bootStrapSpotifyDarwinTest(args)
assert.Equal(t, true, s.enabled())
@@ -51,10 +52,10 @@ func TestSpotifyDarwinEnabledAndSpotifyPlaying(t *testing.T) {
func TestSpotifyDarwinEnabledAndSpotifyPaused(t *testing.T) {
args := &spotifyArgs{
- spotifyDarwinRunning: "true",
- spotifyDarwinStatus: "paused",
- spotifyDarwinArtist: "Candlemass",
- spotifyDarwinTrack: "Spellbreaker",
+ running: "true",
+ status: "paused",
+ artist: "Candlemass",
+ track: "Spellbreaker",
}
s := bootStrapSpotifyDarwinTest(args)
assert.Equal(t, true, s.enabled())
diff --git a/segment_spotify_test.go b/segment_spotify_test.go
old mode 100755
new mode 100644
index 86df7215..fe7c3b14
--- a/segment_spotify_test.go
+++ b/segment_spotify_test.go
@@ -1,5 +1,3 @@
-// +build windows
-
package main
import (
diff --git a/segment_spotify_windows_test.go b/segment_spotify_windows_test.go
index fef9f0b5..3d378cf1 100644
--- a/segment_spotify_windows_test.go
+++ b/segment_spotify_windows_test.go
@@ -10,13 +10,13 @@ import (
)
type spotifyArgs struct {
- spotifyWindowsTitle string
- spotifyNotRunningError error
+ title string
+ runError error
}
func bootStrapSpotifyWindowsTest(args *spotifyArgs) *spotify {
env := new(MockedEnvironment)
- env.On("getWindowTitle", "spotify.exe").Return(args.spotifyWindowsTitle, args.spotifyNotRunningError)
+ env.On("getWindowTitle", "spotify.exe").Return(args.title, args.runError)
props := &properties{}
s := &spotify{
env: env,
@@ -27,7 +27,7 @@ func bootStrapSpotifyWindowsTest(args *spotifyArgs) *spotify {
func TestSpotifyWindowsEnabledAndSpotifyNotRunning(t *testing.T) {
args := &spotifyArgs{
- spotifyNotRunningError: errors.New(""),
+ runError: errors.New(""),
}
s := bootStrapSpotifyWindowsTest(args)
assert.Equal(t, false, s.enabled())
@@ -35,7 +35,7 @@ func TestSpotifyWindowsEnabledAndSpotifyNotRunning(t *testing.T) {
func TestSpotifyWindowsEnabledAndSpotifyPlaying(t *testing.T) {
args := &spotifyArgs{
- spotifyWindowsTitle: "Candlemass - Spellbreaker",
+ title: "Candlemass - Spellbreaker",
}
s := bootStrapSpotifyWindowsTest(args)
assert.Equal(t, true, s.enabled())
@@ -44,7 +44,7 @@ func TestSpotifyWindowsEnabledAndSpotifyPlaying(t *testing.T) {
func TestSpotifyWindowsEnabledAndSpotifyStopped(t *testing.T) {
args := &spotifyArgs{
- spotifyWindowsTitle: "Spotify premium",
+ title: "Spotify premium",
}
s := bootStrapSpotifyWindowsTest(args)
assert.Equal(t, true, s.enabled())
diff --git a/segment_terraform_test.go b/segment_terraform_test.go
old mode 100755
new mode 100644
diff --git a/segment_test.go b/segment_test.go
old mode 100755
new mode 100644
diff --git a/segment_text.go b/segment_text.go
index ac69d63f..d35d0d72 100644
--- a/segment_text.go
+++ b/segment_text.go
@@ -6,7 +6,7 @@ type text struct {
}
const (
- //TextProperty represents text to write
+ // TextProperty represents text to write
TextProperty Property = "text"
)
diff --git a/segment_time.go b/segment_time.go
index ba1dcff2..ac68844a 100644
--- a/segment_time.go
+++ b/segment_time.go
@@ -10,7 +10,7 @@ type tempus struct {
}
const (
- //TimeFormat uses the reference time Mon Jan 2 15:04:05 MST 2006 to show the pattern with which to format the current time
+ // TimeFormat uses the reference time Mon Jan 2 15:04:05 MST 2006 to show the pattern with which to format the current time
TimeFormat Property = "time_format"
)
diff --git a/settings.go b/settings.go
old mode 100755
new mode 100644
index 8835225a..29428a0e
--- a/settings.go
+++ b/settings.go
@@ -6,31 +6,31 @@ import (
"os"
)
-//Settings holds all the theme for rendering the prompt
+// Settings holds all the theme for rendering the prompt
type Settings struct {
FinalSpace bool `json:"final_space"`
ConsoleTitle bool `json:"console_title"`
Blocks []*Block `json:"blocks"`
}
-//BlockType type of block
+// BlockType type of block
type BlockType string
-//BlockAlignment aligment of a Block
+// BlockAlignment aligment of a Block
type BlockAlignment string
const (
- //Prompt writes one or more Segments
+ // Prompt writes one or more Segments
Prompt BlockType = "prompt"
- //LineBreak creates a line break in the prompt
+ // LineBreak creates a line break in the prompt
LineBreak BlockType = "newline"
- //Left aligns left
+ // Left aligns left
Left BlockAlignment = "left"
- //Right aligns right
+ // Right aligns right
Right BlockAlignment = "right"
)
-//Block defines a part of the prompt with optional segments
+// Block defines a part of the prompt with optional segments
type Block struct {
Type BlockType `json:"type"`
Alignment BlockAlignment `json:"alignment"`
@@ -39,7 +39,7 @@ type Block struct {
Segments []*Segment `json:"segments"`
}
-//GetSettings returns the default configuration including possible user overrides
+// GetSettings returns the default configuration including possible user overrides
func GetSettings(env environmentInfo) *Settings {
settings, err := loadUserConfiguration(env)
if err != nil {