Bug #9004
closedgem which command should exit with status of '1' if 1 or more gem arguments are not found
Description
=begin
Many unix utilities exit with a code of 1 if any parts of the command fail, in particular ((%rpm%)). I believe its desirable for ((%gem which%)) to behave similar to ((%rpm -q%)) for this use case.
rpm -q man¶
man-1.6f-32.el6.x86_64
echo $?¶
0
rpm -q man cheese¶
man-1.6f-32.el6.x86_64
package cheese is not installed
echo $?¶
1
$ gem which capistrano
/opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano.rb
evilensky@Vilensky~/src/puppet/lib/puppet (add-yum-uninstall-to-yum-provider)$ echo $?
0
$ gem which capistrano rails
/opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano.rb
ERROR: Can't find ruby library file or shared library rails
$ echo $?
0
=end
Files
Updated by evilensky (Eugene Vilensky) about 11 years ago
Apologies for breaking the formatting of Description.
rpm case
rpm -q man¶
man-1.6f-32.el6.x86_64
echo $?¶
0
rpm -q man cheese¶
man-1.6f-32.el6.x86_64
package cheese is not installed
echo $?¶
1
gem which case
$ gem which capistrano
/opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano.rb
evilensky@Vilensky~/src/puppet/lib/puppet (add-yum-uninstall-to-yum-provider)$ echo $?
0
$ gem which capistrano rails
/opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano.rb
ERROR: Can't find ruby library file or shared library rails
$ echo $?
0
Updated by nobu (Nobuyoshi Nakada) about 11 years ago
- Description updated (diff)
Updated by phluid61 (Matthew Kerwin) about 11 years ago
- File gem_which.patch gem_which.patch added
=begin
Patch causes gem which
to return 1 if there are no args, or if any of the args is not found.
$ gem which ; echo $?
1
$ gem which rake ; echo $?
/usr/local/lib/ruby/2.1.0/rake.rb
0
$ gem which rake rails ; echo $?
/usr/local/lib/ruby/2.1.0/rake.rb
ERROR: Can't find ruby library file or shared library rails
1
=end
Updated by drbrain (Eric Hodel) about 11 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r43714.
Eugene, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
-
lib/rubygems: Update to RubyGems master 6a3d9f9. Changes include:
Compatibly renamed Gem::DependencyResolver to Gem::Resolver.
Added support for git gems in gem.deps.rb and Gemfile.
Fixed resolver bugs.
-
test/rubygems: ditto.
-
lib/rubygems/LICENSE.txt: Updated to license from RubyGems trunk.
[ruby-trunk - Bug #9086] -
lib/rubygems/commands/which_command.rb: RubyGems now indicates
failure when any file is missing. [ruby-trunk - Bug #9004] -
lib/rubygems/ext/builder: Extensions are now installed into the
extension install directory and the first directory in the require
path from the gem. This allows backwards compatibility with msgpack
and other gems that calculate full require paths.
[ruby-trunk - Bug #9106]