class Excavate::CLI

Constants

STATUS_SUCCESS
STATUS_TARGET_EXISTS
STATUS_TARGET_NOT_EMPTY
STATUS_UNKNOWN_ERROR

Public Class Methods

exit_on_failure?() click to toggle source
# File lib/excavate/cli.rb, line 12
def self.exit_on_failure?
  false
end
start(given_args = ARGV, config = {}) click to toggle source
Calls superclass method
# File lib/excavate/cli.rb, line 16
def self.start(given_args = ARGV, config = {})
  args = if all_commands.key?(given_args[0])
           given_args
         else
           given_args.dup.unshift("extract")
         end

  super(args, config)
end

Public Instance Methods

extract(archive) click to toggle source
# File lib/excavate/cli.rb, line 28
def extract(archive)
  target = Excavate::Archive.new(archive).extract(recursive_packages: options[:recursive])
  success("Successfully extracted to #{File.basename(target)}/")
rescue TargetExistsError => e
  error(e.message, STATUS_TARGET_EXISTS)
rescue TargetNotEmptyError => e
  error(e.message, STATUS_TARGET_NOT_EMPTY)
end

Private Instance Methods

error(message, status) click to toggle source
# File lib/excavate/cli.rb, line 45
def error(message, status)
  say(message, :red)
  status
end
success(message) click to toggle source
# File lib/excavate/cli.rb, line 40
def success(message)
  say(message)
  STATUS_SUCCESS
end