-
Notifications
You must be signed in to change notification settings - Fork 409
/
setup.rb
66 lines (59 loc) · 2.84 KB
/
setup.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
require 'travis/cli'
module Travis
module CLI
class Setup < RepoCommand
autoload :Anynines, 'travis/cli/setup/anynines'
autoload :Appfog, 'travis/cli/setup/appfog'
autoload :Artifacts, 'travis/cli/setup/artifacts'
autoload :Biicode, 'travis/cli/setup/biicode'
autoload :CloudControl, 'travis/cli/setup/cloud_control'
autoload :CloudFoundry, 'travis/cli/setup/cloud_foundry'
autoload :CodeDeploy, 'travis/cli/setup/code_deploy'
autoload :EngineYard, 'travis/cli/setup/engine_yard'
autoload :Heroku, 'travis/cli/setup/heroku'
autoload :Nodejitsu, 'travis/cli/setup/nodejitsu'
autoload :NPM, 'travis/cli/setup/npm'
autoload :OpenShift, 'travis/cli/setup/open_shift'
autoload :PyPI, 'travis/cli/setup/pypi'
autoload :RubyGems, 'travis/cli/setup/ruby_gems'
autoload :Ninefold, 'travis/cli/setup/ninefold'
autoload :S3, 'travis/cli/setup/s3'
autoload :CloudFiles, 'travis/cli/setup/cloud_files'
autoload :Divshot, 'travis/cli/setup/divshot'
autoload :Hackage, 'travis/cli/setup/hackage'
autoload :OpsWorks, 'travis/cli/setup/opsworks'
autoload :SauceConnect, 'travis/cli/setup/sauce_connect'
autoload :Modulus, 'travis/cli/setup/modulus'
autoload :Releases, 'travis/cli/setup/releases'
autoload :GCS, 'travis/cli/setup/gcs'
autoload :Cloud_66, 'travis/cli/setup/cloud_66'
autoload :ElasticBeanstalk, 'travis/cli/setup/elastic_beanstalk'
autoload :Deis, 'travis/cli/setup/deis'
autoload :Service, 'travis/cli/setup/service'
description "sets up an addon or deploy target"
on('-f', '--force', 'override config section if it already exists')
def self.service(name)
normal_name = Service.normalized_name(name)
const_name = constants(false).detect { |c| Service.normalized_name(c) == normal_name }
constant = const_get(const_name) if const_name
constant if constant and constant < Service and constant.known_as? name
end
def self.services
constants(false).sort.map { |c| const_get(c) }.select { |c| c < Service }
end
def help
services = self.class.services.map { |s| "\t" << color(s.service_name.ljust(20), :command) << color(s.description, :info) }.join("\n")
super("\nAvailable services:\n\n#{services}\n\n")
end
def run(service, file = travis_yaml)
service(service).run
save_travis_config(file)
end
def service(name)
factory = self.class.service(name)
error("unknown service #{name}") unless factory
factory.new(self)
end
end
end
end