From b6188c39bf562939ed86163dd0b431ecbe68e0b8 Mon Sep 17 00:00:00 2001 From: Steve K Date: Fri, 25 Aug 2017 00:21:51 +0200 Subject: [PATCH] Add unix variants hints. Add windows specific implementation. --- segment-readonly.go | 5 ++++- segment-readonly_windows.go | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 segment-readonly_windows.go 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, + }) + } +}