Class: Hadupils::Commands::RmFile

Inherits:
SimpleCommand show all
Includes:
Options::Recursive, Helpers::TextHelper
Defined in:
lib/hadupils/commands.rb

Instance Attribute Summary

Attributes inherited from SimpleCommand

#params

Instance Method Summary collapse

Methods included from Options::Recursive

#perform_recursive?

Methods included from Helpers::TextHelper

#pluralize

Methods inherited from SimpleCommand

#initialize, run, #successful?

Constructor Details

This class inherits a constructor from Hadupils::Commands::SimpleCommand

Instance Method Details

#assemble_parameters(parameters) ⇒ Object



133
134
135
# File 'lib/hadupils/commands.rb', line 133

def assemble_parameters(parameters)
  perform_recursive? ? ['-rmr', parameters[1..-1]] : ['-rm', parameters[0..-1]]
end

#runObject



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/hadupils/commands.rb', line 137

def run
  # Similar to shell rm, but for Hadoop DFS!
  # Removes files by default; removes directories recursively with '-r' flag
  fs_cmd, tmp_dirs = assemble_parameters(params)

  if tmp_dirs.empty?
    $stderr.puts 'Failed to remove unspecified tmpdir(s), please specify tmpdir_path'
    [nil, 255]
  else
    stdout, exitstatus = Hadupils::Commands::Hadoop.run ['fs', fs_cmd, tmp_dirs].flatten
    unless successful? exitstatus
      $stderr.puts "Failed to remove #{pluralize(tmp_dirs.length, 'tmpdir', 'tmpdirs')}"
      tmp_dirs.each do |tmp_dir|
        $stderr.puts tmp_dir
      end
    end
    [nil, exitstatus]
  end
end