class ConfC::CLI

ConfC's CLI class.

Public Class Methods

parse(argv) click to toggle source

Parse CLI ARGV.

# File lib/confc/cli.rb, line 50
def self.parse(argv)
  options = ConfC.load_config

  parser = OptionParser.new do |opts|
    opts.banner = BANNER

    opts.on('-p', '--path [PATH]', String, 'Path to configuration files') do |p|
      options[:path] = p
    end
    opts.on('-f', '--overwrite', 'Force to overwrite') do
      options[:overwrite] = true
    end
    opts.on('-y', '--yes', 'Say yes without inquiry') do
      options[:yes] = true
    end
    opts.on('-v', '--verbose', 'Display more information') do
      options[:verbose] = true
    end
    opts.on('-V', '--version', 'Show version number') do
      puts "v#{ConfC::VERSION}"
      exit
    end
    opts.on('-h', '--help', 'Show help') do
      puts opts
      exit
    end
  end
  files = parser.parse(argv)
  options[:files] = ConfC.to_filenames(files) if files.is_a?(Array) && !files.empty?

  options
end
start(argv) click to toggle source

Start CLI.

# File lib/confc/cli.rb, line 34
def self.start(argv)
  options = CLI.parse(argv)
  files = options[:files]

  confc_options = {
    overwrite: options[:overwrite],
    verbose: options[:verbose]
  }
  existent_files = ConfC.get_existent_files(options[:path], files)
  chosen_files = options[:yes] ? existent_files : ConfC.ask_choose_files(existent_files)
  confc_result = ConfC.conf_clone(chosen_files, options[:path], confc_options)
  puts Rainbow("ConfC completed. #{AWW}").green if confc_result
end