diff options
Diffstat (limited to 'trunk/bin')
-rwxr-xr-x | trunk/bin/erb | 141 | ||||
-rwxr-xr-x | trunk/bin/gem | 28 | ||||
-rw-r--r-- | trunk/bin/irb | 20 | ||||
-rwxr-xr-x | trunk/bin/rake | 31 | ||||
-rw-r--r-- | trunk/bin/rdoc | 22 | ||||
-rwxr-xr-x | trunk/bin/ri | 6 | ||||
-rwxr-xr-x | trunk/bin/testrb | 5 |
7 files changed, 253 insertions, 0 deletions
diff --git a/trunk/bin/erb b/trunk/bin/erb new file mode 100755 index 0000000000..a6fcd5370c --- /dev/null +++ b/trunk/bin/erb @@ -0,0 +1,141 @@ +#!/usr/bin/env ruby +# Tiny eRuby --- ERB2 +# Copyright (c) 1999-2000,2002 Masatoshi SEKI +# You can redistribute it and/or modify it under the same terms as Ruby. + +require 'erb' + +class ERB + module Main + def ARGV.switch + return nil if self.empty? + arg = self.shift + return nil if arg == '--' + if arg =~ /^-(.)(.*)/ + return arg if $1 == '-' + raise 'unknown switch "-"' if $2.index('-') + self.unshift "-#{$2}" if $2.size > 0 + "-#{$1}" + else + self.unshift arg + nil + end + end + + def ARGV.req_arg + self.shift || raise('missing argument') + end + + def trim_mode_opt(trim_mode, disable_percent) + return trim_mode if disable_percent + case trim_mode + when 0 + return '%' + when 1 + return '%>' + when 2 + return '%<>' + when '-' + return '%-' + end + end + module_function :trim_mode_opt + + def run(factory=ERB) + trim_mode = 0 + disable_percent = false + begin + while switch = ARGV.switch + case switch + when '-x' # ruby source + output = true + when '-n' # line number + number = true + when '-v' # verbose + $VERBOSE = true + when '--version' # version + STDERR.puts factory.version + exit + when '-d', '--debug' # debug + $DEBUG = true + when '-r' # require + require ARGV.req_arg + when '-S' # security level + arg = ARGV.req_arg + raise "invalid safe_level #{arg.dump}" unless arg =~ /^[0-4]$/ + safe_level = arg.to_i + when '-T' # trim mode + arg = ARGV.req_arg + if arg == '-' + trim_mode = arg + next + end + raise "invalid trim mode #{arg.dump}" unless arg =~ /^[0-2]$/ + trim_mode = arg.to_i + when '-K' # KCODE + arg = ARGV.req_arg + case arg.downcase + when 'e', '-e', 'euc' + $KCODE = 'EUC' + when 's', '-s', 'sjis' + $KCODE = 'SJIS' + when 'u', '-u', 'utf8' + $KCODE = 'UTF8' + when 'n', '-n', 'none' + $KCODE = 'NONE' + else + raise "invalid KCODE #{arg.dump}" + end + when '-P' + disable_percent = true + when '--help' + raise "print this help" + else + raise "unknown switch #{switch.dump}" + end + end + rescue # usage + STDERR.puts $!.to_s + STDERR.puts File.basename($0) + + " [switches] [inputfile]" + STDERR.puts <<EOU + -x print ruby script + -n print ruby script with line number + -v enable verbose mode + -d set $DEBUG to true + -r [library] load a library + -K [kcode] specify KANJI code-set + -S [safe_level] set $SAFE (0..4) + -T [trim_mode] specify trim_mode (0..2, -) + -P ignore lines which start with "%" +EOU + exit 1 + end + + src = $<.read + filename = $FILENAME + exit 2 unless src + trim = trim_mode_opt(trim_mode, disable_percent) + erb = factory.new(src.untaint, safe_level, trim) + erb.filename = filename + if output + if number + l = 1 + for line in erb.src + puts "%3d %s"%[l, line] + l += 1 + end + else + puts erb.src + end + else + erb.run(TOPLEVEL_BINDING.taint) + end + end + module_function :run + end +end + +if __FILE__ == $0 + ERB::Main.run +end diff --git a/trunk/bin/gem b/trunk/bin/gem new file mode 100755 index 0000000000..b5b2b63809 --- /dev/null +++ b/trunk/bin/gem @@ -0,0 +1,28 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2006 by Chad Fowler, Rich Kilmer, Jim Weirich and others. +# All rights reserved. +# See LICENSE.txt for permissions. +#++ + +require 'rubygems' +require 'rubygems/gem_runner' +require 'rubygems/exceptions' + +required_version = Gem::Requirement.new "> 1.8.3" + +unless required_version.satisfied_by? Gem.ruby_version then + abort "Expected Ruby Version #{required_version}, was #{Gem.ruby_version}" +end + +# We need to preserve the original ARGV to use for passing gem options +# to source gems. If there is a -- in the line, strip all options after +# it...its for the source building process. +args = !ARGV.include?("--") ? ARGV.clone : ARGV[0...ARGV.index("--")] + +begin + Gem::GemRunner.new.run args +rescue Gem::SystemExitException => e + exit e.exit_code +end + diff --git a/trunk/bin/irb b/trunk/bin/irb new file mode 100644 index 0000000000..b31b43eb7f --- /dev/null +++ b/trunk/bin/irb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +# +# irb.rb - interactive ruby +# $Release Version: 0.9.5 $ +# $Revision$ +# by Keiju ISHITSUKA(keiju@ruby-lang.org) +# + +require "irb" + +if __FILE__ == $0 + IRB.start(__FILE__) +else + # check -e option + if /^-e$/ =~ $0 + IRB.start(__FILE__) + else + IRB.setup(__FILE__) + end +end diff --git a/trunk/bin/rake b/trunk/bin/rake new file mode 100755 index 0000000000..c9e95da611 --- /dev/null +++ b/trunk/bin/rake @@ -0,0 +1,31 @@ +#!/usr/bin/env ruby + +#-- +# Copyright (c) 2003, 2004, 2005, 2006, 2007 Jim Weirich +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +# IN THE SOFTWARE. +#++ + +begin + require 'rake' +rescue LoadError + require 'rubygems' + require 'rake' +end +Rake.application.run diff --git a/trunk/bin/rdoc b/trunk/bin/rdoc new file mode 100644 index 0000000000..e50285478d --- /dev/null +++ b/trunk/bin/rdoc @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby +# +# RDoc: Documentation tool for source code +# (see lib/rdoc/rdoc.rb for more information) +# +# Copyright (c) 2003 Dave Thomas +# Released under the same terms as Ruby +# +# $Revision$ + +require 'rdoc/rdoc' + +begin + r = RDoc::RDoc.new + r.document ARGV +rescue Interrupt + $stderr.puts + $stderr.puts "Interrupted" +rescue RDoc::Error => e + $stderr.puts e.message + exit 1 +end diff --git a/trunk/bin/ri b/trunk/bin/ri new file mode 100755 index 0000000000..0d4e3304d8 --- /dev/null +++ b/trunk/bin/ri @@ -0,0 +1,6 @@ +#!/usr//bin/env ruby + +require 'rdoc/ri/driver' + +RDoc::RI::Driver.run ARGV + diff --git a/trunk/bin/testrb b/trunk/bin/testrb new file mode 100755 index 0000000000..ff49cb5466 --- /dev/null +++ b/trunk/bin/testrb @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +require 'test/unit' +(r = Test::Unit::AutoRunner.new(true)).process_args(ARGV) or + abort r.options.banner + " tests..." +exit r.run |