class PasswordChanger::Cli::Runner

Public Instance Methods

find_printers(formats) click to toggle source
# File lib/password_changer/cli/runner.rb, line 46
def find_printers(formats)
  formats.inject([]) do |a, e|
    a << case e.to_sym
         when :csv
           Printers::Csv.new
         when :pretty
           Printers::Pretty.new
         when :plain
           Printers::Plain.new
         else
           fail ArgumentError, 'Please use either "csv", "plain" or "pretty" as output format.'
         end
  end
end
start() click to toggle source
# File lib/password_changer/cli/runner.rb, line 21
def start
  PasswordChanger.plugin_manager.activate_plugin(*PasswordChanger.config.plugins)

  PasswordChanger.enable_debug_mode   if options[:debug_mode]
  PasswordChanger.enable_verbose_mode if options[:verbose]

  PluginChecker.check

  data = if options[:csv_file]
           PasswordChanger::Readers::Csv.new.parse(File.expand_path(options[:csv_file]))
         elsif options[:user]
           PasswordChanger::Readers::SingleUser.new.parse(options[:user], options[:ask_new_password])
         else
           fail ArgumentError, 'Please use either `--csv-file`- or `--user`-option.'
         end

  Actions::ChangePassword.new(
    find_printers(options[:output_format]), 
    Changer.new(show_screenshot_on_error: options[:show_screenshot_on_error], viewer_command: options[:viewer_command])
  ).run(data)
end