class Vanagon::CLI::List
Constants
- DOCUMENTATION
Public Instance Methods
options_translate(docopt_options)
click to toggle source
# File lib/vanagon/cli/list.rb, line 73 def options_translate(docopt_options) translations = { '--configdir' => :configdir, '--defaults' => :defaults, '--platforms' => :platforms, '--projects' => :projects, '--use-spaces' => :use_spaces, } return docopt_options.map { |k, v| [translations[k], v] }.to_h end
output(list, use_spaces)
click to toggle source
# File lib/vanagon/cli/list.rb, line 27 def output(list, use_spaces) return list.join(' ') if use_spaces return list end
parse(argv)
click to toggle source
# File lib/vanagon/cli/list.rb, line 20 def parse(argv) Docopt.docopt(DOCUMENTATION, { argv: argv }) rescue Docopt::Exit => e VanagonLogger.error e.message exit 1 end
run(options)
click to toggle source
# File lib/vanagon/cli/list.rb, line 32 def run(options) # rubocop:disable Metrics/AbcSize if Dir.exist?(File.join(options[:configdir], 'platforms')) == false || Dir.exist?(File.join(options[:configdir], 'projects')) == false VanagonLogger.error "Path to #{File.join(options[:configdir], 'platforms')} or #{File.join(options[:configdir], 'projects')} not found." exit 1 end default_list = Dir.children(File.join(File.dirname(__FILE__), '..', 'platform', 'defaults')).map do |platform| File.basename(platform, File.extname(platform)) end.sort platform_list = Dir.children(File.join(options[:configdir], 'platforms')).map do |platform| File.basename(platform, File.extname(platform)) end.sort project_list = Dir.children(File.join(options[:configdir], 'projects')).map do |project| File.basename(project, File.extname(project)) end.sort if options[:defaults] puts "- Defaults", output(default_list, options[:use_spaces]) return end if options[:projects] == options[:platforms] puts "- Projects", output(project_list, options[:use_spaces]), "\n", "- Platforms", output(platform_list, options[:use_spaces]) return end if options[:projects] puts "- Projects", output(project_list, options[:use_spaces]) return end if options[:platforms] puts "- Platforms", output(platform_list, options[:use_spaces]) return end end