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