Skip to main content
Solved

Running Jamf scripts that contain Visual Studio Code cli commands?

  • August 23, 2019
  • 1 reply
  • 0 views

Forum|alt.badge.img+5

Hey all,

Apologies in advance if this questions comes across as thick-headed - I'm very new to Jamf and bash scripting in general.

We have Visual Studio Code installed on our lab machines, and would like to use Jamf Remote to install some plugins for VScode.

To do this, Jamf needs to be able to run

code --install-extension foo.vscode.extension

We've managed to add code cli commands to the path variable from Jamf remote by writing the following script:

#!/bin/sh
sudo touch /etc/paths.d/vscode
sudo bash -c "echo /Applications/Visual Studio Code.app/Contents/Resources/app/bin > /etc/paths.d/vscode"

This can be pushed to our machines and will work once the Macs are restarted, allow us to locally install vscode extensions via command line.

The problem comes trying to push the vscode commands via Jamf remote - I don't think that Jamf (as root) can see the path variable to run the vscode commands. I think this will hold true even If I sudo -i into the same user that has the path variable set, since that doesn't carry over?

If anyone can push me in the right direction for getting the Jamf user to be able to install these extensions, that would be great.

Thanks!

Best answer by chrismorga

I sorted this out. For future readers:

Use which code (in this case, will work for any cli command) to get the full path to the cli command.

Next, use the full path as a command to run what you need. in my case it's /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code -c to run code cli commands. note that -c turns your path into an executable (someone should fix my terminology on this, but it makes sense I think) and allows you to run the commands as if you properly switched users into the user that has your cli path environment correctly configured.

NOTE! This doesn't actually install visual studio extensions onto your lab machines. I'm marking this solved because this method resolves successful code. What it did do was install a bunch of vscode extensions into my jamfadmin home directory. Morning coffee reminded me that I can just package up those extension folders and deploy them via policy, which worked.

View original
Did this topic help you find an answer to your question?

1 reply

Forum|alt.badge.img+5
  • Author
  • New Contributor
  • 2 replies
  • Answer
  • August 23, 2019

I sorted this out. For future readers:

Use which code (in this case, will work for any cli command) to get the full path to the cli command.

Next, use the full path as a command to run what you need. in my case it's /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code -c to run code cli commands. note that -c turns your path into an executable (someone should fix my terminology on this, but it makes sense I think) and allows you to run the commands as if you properly switched users into the user that has your cli path environment correctly configured.

NOTE! This doesn't actually install visual studio extensions onto your lab machines. I'm marking this solved because this method resolves successful code. What it did do was install a bunch of vscode extensions into my jamfadmin home directory. Morning coffee reminded me that I can just package up those extension folders and deploy them via policy, which worked.


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings