Ruby scripts

General discussions about LaunchBar
Post Reply
AmberV
Posts: 18
Joined: Sun Dec 24, 2006 6:31 am

Ruby scripts

Post by AmberV » Sun Dec 24, 2006 6:37 am

I am trying to get a Ruby script to run with LB and it refuses to acknowledge that it is a script. I have tried removing the ".rb" extension, as per a suggestion in this forum to remove the ".sh", but then it refers to it as a text file instead of a Ruby source document. Is there no way to do this? The only thing I could think of was wrapping each Ruby script in a shell script -- awfully clumsy. :)

norbert
Objective Development
Objective Development
Posts: 648
Joined: Thu Nov 09, 2006 6:30 pm

Post by norbert » Sun Dec 24, 2006 12:26 pm

First, make sure that your script contains a proper shebang line:

Code: Select all

#!/usr/bin/ruby
puts 'Hello world'

Further, the script must have execute permissions set to make LaunchBar recognize it as a Unix executable file:

Code: Select all

chmod +x MyHelloWorldScript

AmberV
Posts: 18
Joined: Sun Dec 24, 2006 6:31 am

Post by AmberV » Sun Dec 24, 2006 2:57 pm

Affirmative on both counts. The script runs fine when I run it in Terminal, for instance. So I tried making a test Ruby script with vi, from Terminal, and when I added it to LB, it came up as an executable! So I took at look at the meta-data for the misbehaving file, since all of its UNIX things were set proper, and noticed that it had a Type and Creator set (to TEXT and JESP, respectively). After removing those, it added to LB as an executable.

So, there you have either a bug, or something to write up in the docs. I suppose at this point I should mention that I am using 4.2b2.

AmberV
Posts: 18
Joined: Sun Dec 24, 2006 6:31 am

Post by AmberV » Sun Dec 24, 2006 3:11 pm

I apologise for straying off of the topic in my own thread, but now that I have this working -- is there any way to pipe the results of an executed script into the clipboard, rather than running it in Terminal?

yanokwa
Posts: 17
Joined: Mon Nov 27, 2006 9:03 pm

Post by yanokwa » Sun Dec 24, 2006 7:54 pm

pbcopy and pbpaste are what you want.

To dump a detailed directory list to the clipboard, just type:
ls -al | pbcopy

You can then paste the contents of the clipboard to somefile using pbpaste:
pbpaste > somefile

Source: http://www.macosxhints.com/article.php? ... 7221216167

AmberV
Posts: 18
Joined: Sun Dec 24, 2006 6:31 am

Post by AmberV » Sun Dec 24, 2006 10:47 pm

Splendid! That is slightly more clumsy than pressing Opt-Return or something in LB, but it will certainly do. That's a great tip, and useful beyond LaunchBar. Thank you.

Edit: I put the necessary pipe into the Ruby script itself, now it automatically inserts the result in the clipboard.

Post Reply