@@ -34,7 +34,7 @@ RUNNING_VM_COLOR = "#29cc00"
34
34
# Stopped VM color (default red)
35
35
STOPPED_VM_COLOR = "#ff0033"
36
36
37
- VERSION = "1.3.0 "
37
+ VERSION = "1.3.1 "
38
38
39
39
40
40
def logSetup (level : str = "INFO" ):
@@ -185,12 +185,7 @@ def listContainers(vm: str = "default"):
185
185
:return dict:
186
186
"""
187
187
containers = {}
188
- if vm != "default" :
189
- env = dict (os .environ , LIMA_INSTANCE = vm )
190
- else :
191
- env = dict (os .environ )
192
- newpath = "%s:/usr/local/bin" % env ["PATH" ]
193
- env ["PATH" ] = newpath
188
+ env = prep_environment_for_lima (vm = vm )
194
189
195
190
command = [
196
191
"lima" ,
@@ -223,13 +218,7 @@ def listImages(vm: str = "default"):
223
218
:return dict:
224
219
"""
225
220
images = {}
226
- if vm != "default" :
227
- env = dict (os .environ , LIMA_INSTANCE = vm )
228
- else :
229
- env = dict (os .environ )
230
-
231
- newpath = "%s:/usr/local/bin" % env ["PATH" ]
232
- env ["PATH" ] = newpath
221
+ env = prep_environment_for_lima (vm = vm )
233
222
234
223
command = ["lima" , "nerdctl" , "images" , "--format" , "{{json .}}" ]
235
224
raw = jsonCommand (command = command , env = env )
@@ -262,9 +251,7 @@ def listVMs():
262
251
"""
263
252
vmList = {}
264
253
265
- env = dict (os .environ )
266
- newpath = "%s:/usr/local/bin" % env ["PATH" ]
267
- env ["PATH" ] = newpath
254
+ env = prep_environment_for_lima ()
268
255
269
256
vmRaw = subprocess .run (
270
257
["limactl" , "list" , "--json" ], env = env , stdout = subprocess .PIPE
@@ -283,17 +270,25 @@ def prep_environment_for_lima(vm: str = "default", env: dict = dict(os.environ))
283
270
"""
284
271
Set up an environment dictionary we can use to run a lima command.
285
272
286
- Also adds /usr/local/bin to $PATH
273
+ Also adds /usr/local/bin and /opt/homebrew/bin to $PATH if they exist
274
+ and are directories.
287
275
288
276
:param str vm: VM to work in
289
277
:param dict env: Environment variables to base returned environment on
290
278
291
279
:return dict: Environment dictionary, with /usr/local/bin added to $PATH
292
280
"""
293
- newpath = "%s:/usr/local/bin" % env ["PATH" ]
294
- env ["PATH" ] = newpath
281
+ logging .warning ('UPDATING PATH' )
282
+ extrapaths = ["/usr/local/bin" , "/opt/homebrew/bin" ]
283
+ for p in extrapaths :
284
+ if os .path .isdir (p ):
285
+ logging .info ("Adding %s to $PATH" , p )
286
+ newpath = "%s:%s" % (env ["PATH" ], p )
287
+ env ["PATH" ] = newpath
288
+ logging .info ("New path: %s" , env ["PATH" ])
295
289
296
290
if vm != "default" :
291
+ logging .info ("Setting LIMA_INSTANCE to %s" , vm )
297
292
env ["LIMA_INSTANCE" ] = vm
298
293
return env
299
294
@@ -443,8 +438,9 @@ def aboutMenu():
443
438
"""
444
439
Print details about plugin
445
440
"""
441
+ env = prep_environment_for_lima ()
446
442
limaVersion = subprocess .run (
447
- ["/usr/local/bin/ limactl" , "--version" ], stdout = subprocess .PIPE
443
+ ["limactl" , "--version" ], stdout = subprocess .PIPE , env = env
448
444
).stdout .decode ("utf-8" )
449
445
450
446
print ("About…" )
0 commit comments