@@ -24,10 +24,10 @@ const DarwinRunL1NodeTemplate = `<?xml version="1.0" encoding="UTF-8"?>
24
24
</array>
25
25
26
26
<key>RunAtLoad</key>
27
- <true />
27
+ <false />
28
28
29
29
<key>KeepAlive</key>
30
- <true />
30
+ <false />
31
31
32
32
<!-- Adding the environment variable -->
33
33
<key>EnvironmentVariables</key>
@@ -39,10 +39,10 @@ const DarwinRunL1NodeTemplate = `<?xml version="1.0" encoding="UTF-8"?>
39
39
</dict>
40
40
41
41
<key>StandardOutPath</key>
42
- <string>/tmp /initia.stdout.log</string>
42
+ <string>%[4]s /initia.stdout.log</string>
43
43
44
44
<key>StandardErrorPath</key>
45
- <string>/tmp /initia.stderr.log</string>
45
+ <string>%[4]s /initia.stderr.log</string>
46
46
47
47
<key>HardResourceLimits</key>
48
48
<dict>
@@ -66,7 +66,11 @@ func CreateService(serviceName, serviceContent string) error {
66
66
}
67
67
return EnableService (serviceName )
68
68
case "darwin" :
69
- cmd := exec .Command ("sudo" , "tee" , fmt .Sprintf ("/Library/LaunchDaemons/%s.plist" , serviceName ))
69
+ userHome , err := os .UserHomeDir ()
70
+ if err != nil {
71
+ return fmt .Errorf ("failed to get user home directory: %v" , err )
72
+ }
73
+ cmd := exec .Command ("tee" , filepath .Join (userHome , fmt .Sprintf ("Library/LaunchAgents/%s.plist" , serviceName )))
70
74
cmd .Stdin = strings .NewReader (serviceContent )
71
75
if err := cmd .Run (); err != nil {
72
76
return fmt .Errorf ("failed to create service: %v" , err )
@@ -94,7 +98,11 @@ func EnableService(serviceName string) error {
94
98
}
95
99
96
100
func LoadService (serviceName string ) error {
97
- loadCmd := exec .Command ("sudo" , "launchctl" , "load" , fmt .Sprintf ("/Library/LaunchDaemons/%s.plist" , serviceName ))
101
+ userHome , err := os .UserHomeDir ()
102
+ if err != nil {
103
+ return fmt .Errorf ("failed to get user home directory: %v" , err )
104
+ }
105
+ loadCmd := exec .Command ("launchctl" , "load" , filepath .Join (userHome , fmt .Sprintf ("Library/LaunchAgents/%s.plist" , serviceName )))
98
106
if err := loadCmd .Run (); err != nil {
99
107
return fmt .Errorf ("failed to load service: %v" , err )
100
108
}
@@ -110,12 +118,7 @@ func StartService(serviceName string) error {
110
118
}
111
119
return nil
112
120
case "darwin" :
113
- loadCmd := exec .Command ("sudo" , "launchctl" , "load" , fmt .Sprintf ("/Library/LaunchDaemons/%s.plist" , serviceName ))
114
- if err := loadCmd .Run (); err != nil {
115
- return fmt .Errorf ("failed to load service: %v" , err )
116
- }
117
-
118
- startCmd := exec .Command ("sudo" , "launchctl" , "start" , serviceName )
121
+ startCmd := exec .Command ("launchctl" , "start" , serviceName )
119
122
if err := startCmd .Run (); err != nil {
120
123
return fmt .Errorf ("failed to start service: %v" , err )
121
124
}
@@ -135,7 +138,11 @@ func StopService(serviceName string) error {
135
138
}
136
139
return nil
137
140
case "darwin" :
138
- cmd := exec .Command ("sudo" , "launchctl" , "unload" , fmt .Sprintf ("/Library/LaunchDaemons/%s.plist" , serviceName ))
141
+ userHome , err := os .UserHomeDir ()
142
+ if err != nil {
143
+ return fmt .Errorf ("failed to get user home directory: %v" , err )
144
+ }
145
+ cmd := exec .Command ("launchctl" , "unload" , filepath .Join (userHome , fmt .Sprintf ("Library/LaunchAgents/%s.plist" , serviceName )))
139
146
if err := cmd .Run (); err != nil {
140
147
return fmt .Errorf ("failed to stop service: %v" , err )
141
148
}
@@ -162,6 +169,7 @@ func GetDarwinRunL1NodePlist(version string) string {
162
169
panic (fmt .Errorf ("failed to get user home directory: %v" , err ))
163
170
}
164
171
weaveDataPath := filepath .Join (userHome , WeaveDataDirectory )
172
+ weaveLogPath := filepath .Join (userHome , WeaveLogDirectory )
165
173
binaryPath := filepath .Join (weaveDataPath , "initia@" + version )
166
174
initiaHome := filepath .Join (userHome , InitiaDirectory )
167
175
if err = os .Setenv ("DYLD_LIBRARY_PATH" , binaryPath ); err != nil {
@@ -171,5 +179,5 @@ func GetDarwinRunL1NodePlist(version string) string {
171
179
panic (fmt .Errorf ("failed to set HOME: %v" , err ))
172
180
}
173
181
174
- return fmt .Sprintf (DarwinRunL1NodeTemplate , binaryPath , userHome , initiaHome )
182
+ return fmt .Sprintf (DarwinRunL1NodeTemplate , binaryPath , userHome , initiaHome , weaveLogPath )
175
183
}
0 commit comments