lib/travis/cli/init.rb in travis-1.5.3 vs lib/travis/cli/init.rb in travis-1.5.4

- old
+ new

@@ -1,10 +1,19 @@ require 'travis/cli' module Travis module CLI class Init < Enable + LANGUAGE_MAPPING = { + "node" => "node_js", + "node.js" => "node_js", + "javascript" => "node_js", + "coffeescript" => "node_js", + "c++" => "cpp", + "obj-c" => "objective-c" + } + description "generates a .travis.yml and enables the project" on('-f', '--force', 'override .travis.yml if it already exists') on('-k', '--skip-enable', 'do not enable project, only add .travis.yml') on('-p', '--print-conf', 'print generated config instead of writing to file') @@ -22,10 +31,19 @@ end end attr_writer :travis_config + def self.languages + pattern = File.expand_path("../init/*.yml", __FILE__) + Dir[pattern].map { |f| File.basename(f, '.yml') }.sort + end + + def help + super("Available languages: #{self.class.languages.join(", ")}\n\n") + end + def run(language = nil, file = '.travis.yml') error "#{file} already exists, use --force to override" if File.exist?(file) and not force? and not print_conf? language ||= ask('Main programming language used: ') { |q| q.default = detect_language } self.travis_config = template(language).merge(custom_config) @@ -43,17 +61,23 @@ @custom_config ||= {} end private + def template_name(language) + File.expand_path("../init/#{language}.yml", __FILE__) + end + def template(language) - file = File.expand_path("../init/#{language}.yml", __FILE__) + language = language.to_s.downcase + language = LANGUAGE_MAPPING[language] || language + file = template_name(language) error "unknown language #{language}" unless File.exist? file YAML.load_file(file) end def detect_language - 'ruby' + repository.github_language || "Ruby" end end end end \ No newline at end of file