[Rubygems-developers] [ rubygems-Bugs-29077 ] [PATCH] executable wrapper should set $0

noreply at rubyforge.org noreply at rubyforge.org
Mon Mar 14 16:45:57 EDT 2011


Bugs item #29077, was opened at 2011-03-11 12:07
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29077&group_id=126

Category: `gem install` command
>Group: v1.6.x
Status: Open
Resolution: None
Priority: 3
Submitted By: Suraj Kurapati (snk)
>Assigned to: Eric Hodel (drbrain)
Summary: [PATCH] executable wrapper should set $0

Initial Comment:
Hello,

The wrapper executable that RubyGems generates should set $0 to the actual executable file before loading it.  This allows us to use the "if __FILE__ == $0" idiom (which is an indispensable feature for essentially single-file executables that we just want to release as ruby gems) in our executables.

Thanks for your consideration.

----------------------------------------------------------------------

>Comment By: Eric Hodel (drbrain)
Date: 2011-03-14 13:45

Message:
If this is only a single-file executable why would you need the `if __FILE__ == $0` check?  RubyGems no longer places 'bin' on the load path.

----------------------------------------------------------------------

Comment By: Suraj Kurapati (snk)
Date: 2011-03-11 12:27

Message:
Here is a handy little command to fix existing wrappers:

sed -i '$s/^load G/load $0 = G/' \
$(gem env | sed -n 's/^.*EXECUTABLE DIRECTORY: *//p')/*

Cheers.

----------------------------------------------------------------------

Comment By: Suraj Kurapati (snk)
Date: 2011-03-11 12:15

Message:
Whoops, sorry for filing this patch request under the bug 
tracker (I started out writing a bug report but decided to 
submit a patch midway).  Please move it under the patch 
tracker if possible.  Thanks!

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=29077&group_id=126


More information about the Rubygems-developers mailing list