diff --git a/segment-readonly.go b/segment-readonly.go index 53d9c33a..224be181 100644 --- a/segment-readonly.go +++ b/segment-readonly.go @@ -1,9 +1,12 @@ +// +build !windows + package main import ( "fmt" - "golang.org/x/sys/unix" "os" + + "golang.org/x/sys/unix" ) func segmentPerms(p *powerline) { diff --git a/segment-readonly_windows.go b/segment-readonly_windows.go new file mode 100644 index 00000000..cdf719d4 --- /dev/null +++ b/segment-readonly_windows.go @@ -0,0 +1,26 @@ +// +build windows + +package main + +import ( + "fmt" + "os" +) + +func segmentPerms(p *powerline) { + cwd := p.cwd + if cwd == "" { + cwd, _ = os.LookupEnv("PWD") + } + + 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 { + p.appendSegment("perms", segment{ + content: fmt.Sprintf(" %s ", p.symbolTemplates.Lock), + foreground: p.theme.ReadonlyFg, + background: p.theme.ReadonlyBg, + }) + } +}