Author: stack Date: Wed Sep 23 03:10:49 2009 New Revision: 817947 URL: http://svn.apache.org/viewvc?rev=817947&view=rev Log: HBASE-1859 Misc shell fixes patch
Modified: hadoop/hbase/trunk/CHANGES.txt hadoop/hbase/trunk/bin/Formatter.rb hadoop/hbase/trunk/bin/hirb.rb Modified: hadoop/hbase/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=817947&r1=817946&r2=817947&view=diff ============================================================================== --- hadoop/hbase/trunk/CHANGES.txt (original) +++ hadoop/hbase/trunk/CHANGES.txt Wed Sep 23 03:10:49 2009 @@ -43,6 +43,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-1760 Cleanup TODOs in HTable Modified: hadoop/hbase/trunk/bin/Formatter.rb URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/bin/Formatter.rb?rev=817947&r1=817946&r2=817947&view=diff ============================================================================== --- hadoop/hbase/trunk/bin/Formatter.rb (original) +++ hadoop/hbase/trunk/bin/Formatter.rb Wed Sep 23 03:10: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/trunk/bin/hirb.rb URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/bin/hirb.rb?rev=817947&r1=817946&r2=817947&view=diff ============================================================================== --- hadoop/hbase/trunk/bin/hirb.rb (original) +++ hadoop/hbase/trunk/bin/hirb.rb Wed Sep 23 03:10: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.