class Vanagon::CLI::List
Constants
- DOCUMENTATION
Public Instance Methods
check_directories(options)
click to toggle source
# File lib/vanagon/cli/list.rb, line 61 def check_directories(options) platforms_directory = File.join(options[:configdir], 'platforms') projects_directory = File.join(options[:configdir], 'projects') unless Dir.exist?(platforms_directory) VanagonLogger.error "Platforms directory \"#{platforms_directory}\" does not exist." exit 1 end unless Dir.exist?(projects_directory) VanagonLogger.error "Projectss directory \"#{projects_directory}\" does not exist." exit 1 end end
options_translate(docopt_options)
click to toggle source
# File lib/vanagon/cli/list.rb, line 82 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 check_directories(options) default_list = topic_list(File.dirname(__FILE__), '..', 'platform', 'defaults') platform_list = topic_list(options[:configdir], 'platforms') project_list = topic_list(options[:configdir], 'projects') 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
topic_list(*topic_path_items)
click to toggle source
# File lib/vanagon/cli/list.rb, line 76 def topic_list(*topic_path_items) Dir.children(File.join(topic_path_items)).map do |t| File.basename(t, File.extname(t)) end.sort end