Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've got a bash script, potentially many of them in fact, which I'd like to be able to open files in OSX's finder with.

It's a really, really simple concept but for some reason bash scripts are greyed out in the finder 'open with' dialog.

I gather that there are various ways of using applescript or packaging as an app... but I haven't been able to figure any of this out and I don't really want to have to pick up another language just for this trivial task - could someone spoon feed me how to do this?

Thanks!

share|improve this question

1 Answer 1

up vote 8 down vote accepted

It's not possible. Launch Services works with application identifiers, and bash scripts don't have them.

You need to create a wrapper application using Automator.

  1. Launch Automator
  2. Select Application
  3. Look for the Run Shell Script action and add it to the right.
  4. Pass input as arguments
  5. Put your script in there
  6. Save somewhere

Here's my version, using the Growl command line utility:

enter image description here

Result:

enter image description here


You can see the effect this change has on ~/Library/Preferences/com.apple.LaunchServices.plist when you Change All:

enter image description here

("Test" is the name I gave my Automator application)

share|improve this answer
    
Thanks. I gave it a whirl but I try and open with the app created by Automator it just says The action "Run Shell Script" encountered an error. Check the action's properties and try running the workflow again. Which is about the least helpful error message I've seen for some time! –  rich Jan 29 '11 at 21:45
    
@Rich Does it work with the default script in the run shell script action? Or not even then? Did you remember to change the pass input preference? Do you try double-clicking your application, dragging files onto your application, or only opening the associated file? What happens if you start it the other ways? –  Daniel Beck Jan 29 '11 at 21:49
    
Thanks. Not sure how you'd see output from the default one as it just calls cat, but it seems that didn't error. Rather than have the app call my script from a non-standard location I created a script in /usr/local/bin and then discovered that if I tried to run it it complained that there were too many levels of symbolic links (1?!) So I've just copied the script there instead and it now seems to work. Thanks! –  rich Jan 29 '11 at 22:01

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.