class Dmp::CLI

Command line interface for DMP

Public Instance Methods

about() click to toggle source
# File lib/dmp/cli.rb, line 70
def about
  puts Dmp::BANNER.bold.red
  puts 'version: '.bold + Dmp::VERSION.green
  puts 'author: '.bold + '@__franccesco'.green
  puts 'homepage: '.bold + 'https://github.com/franccesco/dmp'.green
  puts 'learn more: '.bold + 'https://codingdose.info'.green
  puts # extra line, somehow I like them.
end
check_pass() click to toggle source
# File lib/dmp/cli.rb, line 57
def check_pass
  puts "Enter your password, press ENTER when you're done."
  password = ask('Password (hidden):'.yellow, echo: false)
  (puts "Aborted.".red.bold; exit) if password.empty?

  dataset_count = Dmp.check_pwned(password)
  vuln_msg = "Your password appears in #{dataset_count} datasets!".red.bold
  safe_msg = "Your password was not found in a dataset.".green.bold
  puts dataset_count ? vuln_msg : safe_msg
end
gen_pass(pass_length = 7) click to toggle source
# File lib/dmp/cli.rb, line 29
def gen_pass(pass_length = 7)
  new_passphrase = Dmp.gen_passphrase(pass_length.to_i)
  Clipboard.copy(new_passphrase.join(' ')) if options[:clipboard]
  dataset_count = Dmp.check_pwned(new_passphrase) if options[:hibp]

  colors = String.colors
  colors.delete(:black) # black color looks ugly in the terminal
  new_passphrase.map! do |phrase|
    random_color = colors.sample
    phrase.colorize(random_color)
  end

  copy_msg = '- Copied to clipboard.'.bold.green
  vuln_pass_msg = "- WARNING: Passphrase appears in #{dataset_count} datasets!".red.bold
  safe_pass_msg = '- Password was not found in a dataset.'.green.bold

  puts '- Passphrase: '.bold + new_passphrase.join(' ')
  puts copy_msg if options[:clipboard]
  puts dataset_count ? vuln_pass_msg : safe_pass_msg if options[:hibp]
end