components/ruby/Solaris/scripts/gemwhich
author April Chin <april.chin@oracle.com>
Mon, 25 Apr 2011 15:05:59 -0700
changeset 199 b87534be1a76
permissions -rw-r--r--
7023222 move ruby to userland 7032819 ruby 1.8.7-p174 needs a newer patch to build against OpenSSL 1.0.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
199
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     1
#!/usr/ruby/1.8/bin/ruby
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     2
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     3
# CDDL HEADER START
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     4
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     8
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    12
# and limitations under the License.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    13
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    19
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    20
# CDDL HEADER END
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    21
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    22
 
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    23
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    24
# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    25
#
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    26
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    27
require 'optparse'
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    28
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    29
pass_on_opts = ["which"]
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    30
pass_on_opts << "--no-verbose"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    31
suppress = false
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    32
deprecation_msg =  "WARNING: gemwhich has been deprecated and will be removed in a future release of Solaris, use 'gem which' instead. (use '-s' to suppress these warnings)\n\n"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    33
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    34
options = OptionParser.new do |opts|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    35
  opts.banner = "gemwhich -- Find the location of a library module."
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    36
  opts.separator ""
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    37
  opts.separator "Usage: gemwhich [options] [libname]..."
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    38
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    39
  opts.on('-a', '--all',
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    40
         "Show all matching files"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    41
     ) do |value|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    42
       pass_on_opts  << '-a'
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    43
  end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    44
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    45
  opts.on('-g', '--gems-first',
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    46
          "Search GEM libraries before non-GEMs"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    47
        ) do |value|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    48
          pass_on_opts << '-g'
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    49
        end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    50
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    51
  opts.on_tail('-v', '--verbose',
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    52
         "Enable verbose output"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    53
     ) do |value|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    54
      pass_on_opts << '-v'
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    55
  end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    56
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    57
  opts.on_tail('-s', '--suppress-warnings',
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    58
         "Suppress deprecation warning"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    59
     ) do |value|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    60
       suppress = true
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    61
   end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    62
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    63
  opts.on_tail('-h', '--help', "Display this help message"
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    64
     ) do
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    65
      print deprecation_msg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    66
      puts opts
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    67
      exit
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    68
  end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    69
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    70
end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    71
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    72
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    73
ARGV << '-h' if ARGV.empty?
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    74
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    75
begin
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    76
  options.parse!(ARGV)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    77
rescue OptionParser::InvalidArgument => err
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    78
  puts options
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    79
  puts
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    80
  puts err.message
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    81
  exit(-1)
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    82
end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    83
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    84
ARGV.each do |arg|
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    85
  pass_on_opts << arg
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    86
end
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    87
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    88
print deprecation_msg unless suppress
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    89
b87534be1a76 7023222 move ruby to userland
April Chin <april.chin@oracle.com>
parents:
diff changeset
    90
system("gem", *pass_on_opts)