Fixed getting homeDir on OSX for cross compilation

This commit is contained in:
Kamil Trzcinski
2015-04-11 12:07:33 +02:00
parent 4be10aefd5
commit 4377cfdbdd
+17 -2
View File
@@ -13,6 +13,7 @@ import (
"syscall" "syscall"
"text/template" "text/template"
"time" "time"
"errors"
) )
const maxPathSize = 32 * 1024 const maxPathSize = 32 * 1024
@@ -74,13 +75,27 @@ func (s *darwinLaunchdService) String() string {
return s.Name return s.Name
} }
func (s *darwinLaunchdService) getHomeDir() (string, error) {
u, err := user.Current()
if err == nil {
return u.HomeDir, nil
}
// alternate methods
homeDir := os.Getenv("HOME") // *nix
if homeDir == "" {
return "", errors.New("User home directory not found.")
}
return homeDir, nil
}
func (s *darwinLaunchdService) getServiceFilePath() (string, error) { func (s *darwinLaunchdService) getServiceFilePath() (string, error) {
if s.userService { if s.userService {
u, err := user.Current() homeDir, err := s.getHomeDir()
if err != nil { if err != nil {
return "", err return "", err
} }
return u.HomeDir + "/Library/LaunchAgents/" + s.Name + ".plist", nil return homeDir + "/Library/LaunchAgents/" + s.Name + ".plist", nil
} }
return "/Library/LaunchDaemons/" + s.Name + ".plist", nil return "/Library/LaunchDaemons/" + s.Name + ".plist", nil
} }