summaryrefslogtreecommitdiff
path: root/cmd/install/install.go
diff options
context:
space:
mode:
authorYuki Ito <[email protected]>2018-01-08 17:51:45 +0900
committerYuki Ito <[email protected]>2018-01-08 17:51:45 +0900
commitfbb0b604547d5c4703f7e76fb41e65a090811557 (patch)
treeb630b54df28dbf85ac5ae694c9861a207402ee56 /cmd/install/install.go
parent6bee943216c8cea4cc983c8596346d8945279a1f (diff)
Add support for fish
Diffstat (limited to 'cmd/install/install.go')
-rw-r--r--cmd/install/install.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/cmd/install/install.go b/cmd/install/install.go
index 082a226..4a70624 100644
--- a/cmd/install/install.go
+++ b/cmd/install/install.go
@@ -68,9 +68,36 @@ func installers() (i []installer) {
if f := rcFile(".zshrc"); f != "" {
i = append(i, zsh{f})
}
+ if d := fishConfigDir(); d != "" {
+ i = append(i, fish{d})
+ }
return
}
+func fishConfigDir() string {
+ configDir := filepath.Join(getConfigHomePath(), "fish")
+ if configDir == "" {
+ return ""
+ }
+ if info, err := os.Stat(configDir); err != nil || !info.IsDir() {
+ return ""
+ }
+ return configDir
+}
+
+func getConfigHomePath() string {
+ u, err := user.Current()
+ if err != nil {
+ return ""
+ }
+
+ configHome := os.Getenv("XDG_CONFIG_HOME")
+ if configHome == "" {
+ return filepath.Join(u.HomeDir, ".config")
+ }
+ return configHome
+}
+
func getBinaryPath() (string, error) {
bin, err := os.Executable()
if err != nil {