You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2009/09/23 05:11:49 UTC

svn commit: r817948 - in /hadoop/hbase/branches/0.20: CHANGES.txt bin/Formatter.rb bin/hirb.rb

Author: stack
Date: Wed Sep 23 03:11:49 2009
New Revision: 817948

URL: http://svn.apache.org/viewvc?rev=817948&view=rev
Log:
HBASE-1859 Misc shell fixes patch

Modified:
    hadoop/hbase/branches/0.20/CHANGES.txt
    hadoop/hbase/branches/0.20/bin/Formatter.rb
    hadoop/hbase/branches/0.20/bin/hirb.rb

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=817948&r1=817947&r2=817948&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Wed Sep 23 03:11:49 2009
@@ -28,6 +28,7 @@
    HBASE-1857  WrongRegionException when setting region online after .META.
                split (Cosmin Lehane via Stack)
    HBASE-1809  NPE thrown in BoundedRangeFileInputStream
+   HBASE-1859  Misc shell fixes patch (Kyle Oba via Stack)
 
   IMPROVEMENTS
    HBASE-1819  Update to 0.20.1 hadoop and zk 3.2.1

Modified: hadoop/hbase/branches/0.20/bin/Formatter.rb
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/bin/Formatter.rb?rev=817948&r1=817947&r2=817948&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/bin/Formatter.rb (original)
+++ hadoop/hbase/branches/0.20/bin/Formatter.rb Wed Sep 23 03:11:49 2009
@@ -2,12 +2,20 @@
 module Formatter
   # Base abstract class for results formatting.
   class Formatter
+    def is_kernel?(obj)
+      obj.kind_of?(Module) and obj.name == "Kernel"
+    end
+
     # Takes an output stream and a print width.
-    def initialize(o, w = 100)
-      raise TypeError.new("Type %s of parameter %s is not IO" % [o.class, o]) \
-        unless o.instance_of? IO
-      @out = o
-      @maxWidth = w
+    def initialize(opts={})
+      defaults = {:output_stream => Kernel, :format_width => 100}
+      options = defaults.merge(opts)
+
+      @out = options[:output_stream]
+      raise TypeError.new("Type %s of parameter %s is not IO" % [@out.class, @out]) \
+        unless @out.instance_of? IO or is_kernel?(@out)
+
+      @maxWidth = options[:format_width]
       @rowCount = 0
     end
 
@@ -27,7 +35,7 @@
       end
       if args.class == String
         output(@maxWidth, args)
-        puts
+        @out.puts
         return
       end
       # TODO: Look at the type.  Is it RowResult?
@@ -35,7 +43,7 @@
         splits = split(@maxWidth, dump(args[0]))
         for l in splits
           output(@maxWidth, l)
-          puts
+          @out.puts
         end
       elsif args.length == 2
         col1width = (not widths or widths.length == 0) ? @maxWidth / 4 : @maxWidth * widths[0] / 100
@@ -57,7 +65,7 @@
           @out.print(" ")
           output(col2width, splits2[index])
           index += 1
-          puts
+          @out.puts
         end
       else
         # Print a space to set off multi-column rows

Modified: hadoop/hbase/branches/0.20/bin/hirb.rb
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/bin/hirb.rb?rev=817948&r1=817947&r2=817948&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/bin/hirb.rb (original)
+++ hadoop/hbase/branches/0.20/bin/hirb.rb Wed Sep 23 03:11:49 2009
@@ -71,7 +71,8 @@
   ARGV.delete(arg)
 end
 # Presume console format.
-@formatter = Formatter::Console.new(STDOUT, format_width)
+# Formatter takes an :output_stream parameter, if you don't want STDOUT.
+@formatter = Formatter::Console.new(:format_width => format_width)
 # TODO, etc.  @formatter = Formatter::XHTML.new(STDOUT)
 
 # Setup the HBase module.  Create a configuration.
@@ -100,9 +101,6 @@
 promoteConstants(org.apache.hadoop.hbase.HTableDescriptor.constants)
 promoteConstants(HBase.constants)
 
-# If script2run, try running it.  Will go on to run the shell unless
-# script calls 'exit' or 'exit 0' or 'exit errcode'.
-load(script2run) if script2run
 
 # Start of the hbase shell commands.
 
@@ -428,6 +426,12 @@
   admin().split(tableNameOrRegionName)
 end
 
+
+# If script2run, try running it.  Will go on to run the shell unless
+# script calls 'exit' or 'exit 0' or 'exit errcode'.
+load(script2run) if script2run
+
+
 # Output a banner message that tells users where to go for help
 puts <<HERE
 HBase Shell; enter 'help<RETURN>' for list of supported commands.