dpl 1.8.48.travis.2486.5 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.travis.yml +42 -21
  4. data/Gemfile +3 -98
  5. data/README.md +5 -16
  6. data/Rakefile +160 -1
  7. data/dpl-anynines.gemspec +3 -0
  8. data/dpl-atlas.gemspec +3 -0
  9. data/dpl-azure_webapps.gemspec +3 -0
  10. data/dpl-bintray.gemspec +3 -0
  11. data/dpl-bitballoon.gemspec +3 -0
  12. data/dpl-bluemix_cloud_foundry.gemspec +3 -0
  13. data/dpl-boxfuse.gemspec +3 -0
  14. data/dpl-catalyze.gemspec +3 -0
  15. data/dpl-chef_supermarket.gemspec +8 -0
  16. data/dpl-cloud66.gemspec +3 -0
  17. data/dpl-cloud_files.gemspec +3 -0
  18. data/dpl-cloud_foundry.gemspec +3 -0
  19. data/dpl-code_deploy.gemspec +3 -0
  20. data/dpl-deis.gemspec +3 -0
  21. data/dpl-divshot.gemspec +3 -0
  22. data/dpl-elastic_beanstalk.gemspec +3 -0
  23. data/dpl-engine_yard.gemspec +3 -0
  24. data/dpl-firebase.gemspec +3 -0
  25. data/dpl-gae.gemspec +3 -0
  26. data/dpl-gcs.gemspec +3 -0
  27. data/dpl-hackage.gemspec +3 -0
  28. data/dpl-heroku.gemspec +3 -0
  29. data/dpl-lambda.gemspec +3 -0
  30. data/dpl-launchpad.gemspec +3 -0
  31. data/dpl-modulus.gemspec +3 -0
  32. data/dpl-npm.gemspec +3 -0
  33. data/dpl-openshift.gemspec +3 -0
  34. data/dpl-ops_works.gemspec +3 -0
  35. data/dpl-packagecloud.gemspec +3 -0
  36. data/dpl-pages.gemspec +3 -0
  37. data/dpl-puppet_forge.gemspec +3 -0
  38. data/dpl-pypi.gemspec +3 -0
  39. data/dpl-releases.gemspec +3 -0
  40. data/dpl-rubygems.gemspec +3 -0
  41. data/dpl-s3.gemspec +3 -0
  42. data/dpl-scalingo.gemspec +3 -0
  43. data/dpl-script.gemspec +3 -0
  44. data/dpl-surge.gemspec +3 -0
  45. data/dpl-testfairy.gemspec +3 -0
  46. data/dpl-transifex.gemspec +3 -0
  47. data/dpl.gemspec +2 -31
  48. data/gemspec_helper.rb +49 -0
  49. data/lib/dpl/provider.rb +101 -58
  50. data/lib/dpl/version.rb +1 -1
  51. data/spec/provider_spec.rb +15 -34
  52. metadata +76 -107
  53. data/lib/dpl/provider/anynines.rb +0 -13
  54. data/lib/dpl/provider/appfog.rb +0 -21
  55. data/lib/dpl/provider/atlas.rb +0 -108
  56. data/lib/dpl/provider/azure_webapps.rb +0 -48
  57. data/lib/dpl/provider/bintray.rb +0 -509
  58. data/lib/dpl/provider/bitballoon.rb +0 -22
  59. data/lib/dpl/provider/bluemix_cloud_foundry.rb +0 -23
  60. data/lib/dpl/provider/boxfuse.rb +0 -57
  61. data/lib/dpl/provider/catalyze.rb +0 -49
  62. data/lib/dpl/provider/chef_supermarket.rb +0 -85
  63. data/lib/dpl/provider/cloud66.rb +0 -38
  64. data/lib/dpl/provider/cloud_files.rb +0 -38
  65. data/lib/dpl/provider/cloud_foundry.rb +0 -43
  66. data/lib/dpl/provider/code_deploy.rb +0 -154
  67. data/lib/dpl/provider/deis.rb +0 -128
  68. data/lib/dpl/provider/divshot.rb +0 -23
  69. data/lib/dpl/provider/elastic_beanstalk.rb +0 -195
  70. data/lib/dpl/provider/engine_yard.rb +0 -90
  71. data/lib/dpl/provider/firebase.rb +0 -27
  72. data/lib/dpl/provider/gae.rb +0 -97
  73. data/lib/dpl/provider/gcs.rb +0 -59
  74. data/lib/dpl/provider/hackage.rb +0 -29
  75. data/lib/dpl/provider/heroku.rb +0 -18
  76. data/lib/dpl/provider/heroku/api.rb +0 -98
  77. data/lib/dpl/provider/heroku/generic.rb +0 -94
  78. data/lib/dpl/provider/heroku/git.rb +0 -28
  79. data/lib/dpl/provider/lambda.rb +0 -236
  80. data/lib/dpl/provider/launchpad.rb +0 -48
  81. data/lib/dpl/provider/modulus.rb +0 -23
  82. data/lib/dpl/provider/npm.rb +0 -64
  83. data/lib/dpl/provider/openshift.rb +0 -59
  84. data/lib/dpl/provider/ops_works.rb +0 -132
  85. data/lib/dpl/provider/packagecloud.rb +0 -144
  86. data/lib/dpl/provider/pages.rb +0 -212
  87. data/lib/dpl/provider/puppet_forge.rb +0 -43
  88. data/lib/dpl/provider/pypi.rb +0 -103
  89. data/lib/dpl/provider/releases.rb +0 -139
  90. data/lib/dpl/provider/rubygems.rb +0 -51
  91. data/lib/dpl/provider/s3.rb +0 -123
  92. data/lib/dpl/provider/scalingo.rb +0 -97
  93. data/lib/dpl/provider/script.rb +0 -29
  94. data/lib/dpl/provider/surge.rb +0 -33
  95. data/lib/dpl/provider/testfairy.rb +0 -111
  96. data/lib/dpl/provider/transifex.rb +0 -45
  97. data/spec/provider/anynines_spec.rb +0 -20
  98. data/spec/provider/appfog_spec.rb +0 -35
  99. data/spec/provider/atlas_spec.rb +0 -99
  100. data/spec/provider/azure_webapps_spec.rb +0 -95
  101. data/spec/provider/bintray_spec.rb +0 -259
  102. data/spec/provider/bitballoon_spec.rb +0 -32
  103. data/spec/provider/bluemixcloudfoundry_spec.rb +0 -23
  104. data/spec/provider/boxfuse_spec.rb +0 -16
  105. data/spec/provider/catalyze_spec.rb +0 -39
  106. data/spec/provider/chef_supermarket_spec.rb +0 -51
  107. data/spec/provider/cloud66_spec.rb +0 -44
  108. data/spec/provider/cloud_files_spec.rb +0 -88
  109. data/spec/provider/cloudfoundry_spec.rb +0 -71
  110. data/spec/provider/code_deploy_spec.rb +0 -366
  111. data/spec/provider/deis_spec.rb +0 -116
  112. data/spec/provider/divshot_spec.rb +0 -28
  113. data/spec/provider/elastic_beanstalk_spec.rb +0 -209
  114. data/spec/provider/firebase_spec.rb +0 -40
  115. data/spec/provider/gae_spec.rb +0 -26
  116. data/spec/provider/gcs_spec.rb +0 -115
  117. data/spec/provider/hackage_spec.rb +0 -47
  118. data/spec/provider/heroku_spec.rb +0 -357
  119. data/spec/provider/lambda_spec.rb +0 -432
  120. data/spec/provider/launchpad_spec.rb +0 -33
  121. data/spec/provider/modulus_spec.rb +0 -29
  122. data/spec/provider/npm_spec.rb +0 -95
  123. data/spec/provider/openshift_spec.rb +0 -91
  124. data/spec/provider/ops_works_spec.rb +0 -127
  125. data/spec/provider/packagecloud_spec.rb +0 -56
  126. data/spec/provider/puppet_forge_spec.rb +0 -60
  127. data/spec/provider/pypi_spec.rb +0 -105
  128. data/spec/provider/releases_spec.rb +0 -303
  129. data/spec/provider/rubygems_spec.rb +0 -106
  130. data/spec/provider/s3_spec.rb +0 -174
  131. data/spec/provider/scalingo_spec.rb +0 -64
  132. data/spec/provider/script_spec.rb +0 -26
  133. data/spec/provider/surge_spec.rb +0 -15
  134. data/spec/provider/testfairy_spec.rb +0 -65
  135. data/spec/provider/transifex_spec.rb +0 -110
@@ -1,3 +1,3 @@
1
1
  module DPL
2
- VERSION = '1.8.47'
2
+ VERSION = '1.9.0'
3
3
  end
@@ -3,51 +3,32 @@ require 'dpl/provider'
3
3
 
4
4
  describe DPL::Provider do
5
5
  let(:example_provider) { Class.new(described_class)}
6
- subject(:provider) { example_provider.new(DummyContext.new, :app => 'example', :key_name => 'foo', :run => ["foo", "bar"]) }
6
+ let(:context) { DummyContext.new }
7
+ subject(:provider) { example_provider.new(context, :app => 'example', :key_name => 'foo', :run => ["foo", "bar"]) }
7
8
 
8
9
  before { stub_const "DPL::Provider::Example", example_provider }
9
10
 
10
11
  describe "#new" do
11
- example { expect(described_class.new(DummyContext.new, :provider => "example")) .to be_an(example_provider) }
12
- example { expect(described_class.new(DummyContext.new, :provider => "Example")) .to be_an(example_provider) }
13
- example { expect(described_class.new(DummyContext.new, :provider => "exa_mple")).to be_an(example_provider) }
14
- example { expect(described_class.new(DummyContext.new, :provider => "exa-mple")).to be_an(example_provider) }
12
+ example { expect(described_class.new(context, :provider => "example")) .to be_an(example_provider) }
13
+ example { expect(described_class.new(context, :provider => "Example")) .to be_an(example_provider) }
14
+ example { expect(described_class.new(context, :provider => "exa_mple")).to be_an(example_provider) }
15
+ example { expect(described_class.new(context, :provider => "exa-mple")).to be_an(example_provider) }
16
+ example { expect(described_class.new(context, :provider => "scri_pt")).to be_an(DPL::Provider::Script) }
17
+ example { expect(described_class.new(context, :provider => "scri _pt")).to be_an(DPL::Provider::Script) }
18
+ example { expect(described_class.new(context, :provider => "cloudfoundry")).to be_an(DPL::Provider::CloudFoundry) }
15
19
  example "install deployment dependencies" do
16
20
  expect_any_instance_of(described_class).to receive(:respond_to?).with(:install_deploy_dependencies).and_return(true)
17
21
  expect_any_instance_of(described_class).to receive(:install_deploy_dependencies)
18
- described_class.new(DummyContext.new, :provider => "example")
22
+ described_class.new(context, :provider => "example")
19
23
  end
20
- end
21
24
 
22
- describe "#requires" do
23
- before do
24
- expect(example_provider).to receive(:require).with("foo")
25
- end
26
-
27
- example "installed" do
28
- expect(example_provider).to receive(:gem).with("foo", "~> 1.4")
29
- example_provider.requires("foo", :version => "~> 1.4")
25
+ it "installs correct gem when provider name does not match" do
26
+ expect(context).to receive(:shell).with("gem install dpl-cloud_foundry -v #{ENV['DPL_VERSION'] || DPL::VERSION}")
27
+ expect(described_class).to receive(:require).with("dpl/provider/cloud_foundry").and_raise LoadError.new("cannot load such file -- dpl/provider/cloud_foundry")
28
+ expect(described_class).to receive(:require).with("dpl/provider/cloud_foundry").and_call_original
29
+ described_class.new(context, :provider => 'cloudfoundry')
30
30
  end
31
31
 
32
- example "missing" do
33
- expect(example_provider).to receive(:gem).with("foo", "~> 1.4").and_raise(LoadError)
34
- expect(example_provider.context).to receive(:shell).with('gem install foo -v "~> 1.4" --no-ri --no-rdoc ', retry: true)
35
- example_provider.requires("foo", :version => "~> 1.4")
36
- end
37
- end
38
-
39
- describe "#apt_get" do
40
- example "installed" do
41
- expect(example_provider).to receive(:`).with("which foo").and_return("/bin/foo\n")
42
- expect(example_provider).not_to receive(:system)
43
- example_provider.apt_get("foo")
44
- end
45
-
46
- example "missing" do
47
- expect(example_provider).to receive(:`).with("which foo").and_return("")
48
- expect(example_provider.context).to receive(:shell).with("sudo apt-get -qq install foo", retry: true)
49
- example_provider.apt_get("foo")
50
- end
51
32
  end
52
33
 
53
34
  describe "#pip" do
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dpl
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.48.travis.2486.5
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-29 00:00:00.000000000 Z
11
+ date: 2018-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.0.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-its
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,39 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: json
56
+ name: json_pure
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.8.3
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.8.3
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: tins
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 1.6.0
76
73
  - - ">="
77
74
  - !ruby/object:Gem::Version
78
- version: 1.6.0
75
+ version: '0'
79
76
  type: :development
80
77
  prerelease: false
81
78
  version_requirements: !ruby/object:Gem::Requirement
82
79
  requirements:
83
- - - "~>"
84
- - !ruby/object:Gem::Version
85
- version: 1.6.0
86
80
  - - ">="
87
81
  - !ruby/object:Gem::Version
88
- version: 1.6.0
82
+ version: '0'
89
83
  - !ruby/object:Gem::Dependency
90
84
  name: coveralls
91
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,6 +94,20 @@ dependencies:
100
94
  - - ">="
101
95
  - !ruby/object:Gem::Version
102
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: highline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
103
111
  description: deploy tool abstraction for clients
104
112
  email: konstantin.mailinglists@googlemail.com
105
113
  executables:
@@ -117,97 +125,55 @@ files:
117
125
  - README.md
118
126
  - Rakefile
119
127
  - bin/dpl
128
+ - dpl-anynines.gemspec
129
+ - dpl-atlas.gemspec
130
+ - dpl-azure_webapps.gemspec
131
+ - dpl-bintray.gemspec
132
+ - dpl-bitballoon.gemspec
133
+ - dpl-bluemix_cloud_foundry.gemspec
134
+ - dpl-boxfuse.gemspec
135
+ - dpl-catalyze.gemspec
136
+ - dpl-chef_supermarket.gemspec
137
+ - dpl-cloud66.gemspec
138
+ - dpl-cloud_files.gemspec
139
+ - dpl-cloud_foundry.gemspec
140
+ - dpl-code_deploy.gemspec
141
+ - dpl-deis.gemspec
142
+ - dpl-divshot.gemspec
143
+ - dpl-elastic_beanstalk.gemspec
144
+ - dpl-engine_yard.gemspec
145
+ - dpl-firebase.gemspec
146
+ - dpl-gae.gemspec
147
+ - dpl-gcs.gemspec
148
+ - dpl-hackage.gemspec
149
+ - dpl-heroku.gemspec
150
+ - dpl-lambda.gemspec
151
+ - dpl-launchpad.gemspec
152
+ - dpl-modulus.gemspec
153
+ - dpl-npm.gemspec
154
+ - dpl-openshift.gemspec
155
+ - dpl-ops_works.gemspec
156
+ - dpl-packagecloud.gemspec
157
+ - dpl-pages.gemspec
158
+ - dpl-puppet_forge.gemspec
159
+ - dpl-pypi.gemspec
160
+ - dpl-releases.gemspec
161
+ - dpl-rubygems.gemspec
162
+ - dpl-s3.gemspec
163
+ - dpl-scalingo.gemspec
164
+ - dpl-script.gemspec
165
+ - dpl-surge.gemspec
166
+ - dpl-testfairy.gemspec
167
+ - dpl-transifex.gemspec
120
168
  - dpl.gemspec
169
+ - gemspec_helper.rb
121
170
  - lib/dpl/cli.rb
122
171
  - lib/dpl/error.rb
123
172
  - lib/dpl/provider.rb
124
- - lib/dpl/provider/anynines.rb
125
- - lib/dpl/provider/appfog.rb
126
- - lib/dpl/provider/atlas.rb
127
- - lib/dpl/provider/azure_webapps.rb
128
- - lib/dpl/provider/bintray.rb
129
- - lib/dpl/provider/bitballoon.rb
130
- - lib/dpl/provider/bluemix_cloud_foundry.rb
131
- - lib/dpl/provider/boxfuse.rb
132
- - lib/dpl/provider/catalyze.rb
133
- - lib/dpl/provider/chef_supermarket.rb
134
- - lib/dpl/provider/cloud66.rb
135
- - lib/dpl/provider/cloud_files.rb
136
- - lib/dpl/provider/cloud_foundry.rb
137
- - lib/dpl/provider/code_deploy.rb
138
- - lib/dpl/provider/deis.rb
139
- - lib/dpl/provider/divshot.rb
140
- - lib/dpl/provider/elastic_beanstalk.rb
141
- - lib/dpl/provider/engine_yard.rb
142
- - lib/dpl/provider/firebase.rb
143
- - lib/dpl/provider/gae.rb
144
- - lib/dpl/provider/gcs.rb
145
- - lib/dpl/provider/hackage.rb
146
- - lib/dpl/provider/heroku.rb
147
- - lib/dpl/provider/heroku/api.rb
148
- - lib/dpl/provider/heroku/generic.rb
149
- - lib/dpl/provider/heroku/git.rb
150
- - lib/dpl/provider/lambda.rb
151
- - lib/dpl/provider/launchpad.rb
152
- - lib/dpl/provider/modulus.rb
153
- - lib/dpl/provider/npm.rb
154
- - lib/dpl/provider/openshift.rb
155
- - lib/dpl/provider/ops_works.rb
156
- - lib/dpl/provider/packagecloud.rb
157
- - lib/dpl/provider/pages.rb
158
- - lib/dpl/provider/puppet_forge.rb
159
- - lib/dpl/provider/pypi.rb
160
- - lib/dpl/provider/releases.rb
161
- - lib/dpl/provider/rubygems.rb
162
- - lib/dpl/provider/s3.rb
163
- - lib/dpl/provider/scalingo.rb
164
- - lib/dpl/provider/script.rb
165
- - lib/dpl/provider/surge.rb
166
- - lib/dpl/provider/testfairy.rb
167
- - lib/dpl/provider/transifex.rb
168
173
  - lib/dpl/version.rb
169
174
  - notes/engine_yard.md
170
175
  - notes/heroku.md
171
176
  - spec/cli_spec.rb
172
- - spec/provider/anynines_spec.rb
173
- - spec/provider/appfog_spec.rb
174
- - spec/provider/atlas_spec.rb
175
- - spec/provider/azure_webapps_spec.rb
176
- - spec/provider/bintray_spec.rb
177
- - spec/provider/bitballoon_spec.rb
178
- - spec/provider/bluemixcloudfoundry_spec.rb
179
- - spec/provider/boxfuse_spec.rb
180
- - spec/provider/catalyze_spec.rb
181
- - spec/provider/chef_supermarket_spec.rb
182
- - spec/provider/cloud66_spec.rb
183
- - spec/provider/cloud_files_spec.rb
184
- - spec/provider/cloudfoundry_spec.rb
185
- - spec/provider/code_deploy_spec.rb
186
- - spec/provider/deis_spec.rb
187
- - spec/provider/divshot_spec.rb
188
- - spec/provider/elastic_beanstalk_spec.rb
189
- - spec/provider/firebase_spec.rb
190
- - spec/provider/gae_spec.rb
191
- - spec/provider/gcs_spec.rb
192
- - spec/provider/hackage_spec.rb
193
- - spec/provider/heroku_spec.rb
194
- - spec/provider/lambda_spec.rb
195
- - spec/provider/launchpad_spec.rb
196
- - spec/provider/modulus_spec.rb
197
- - spec/provider/npm_spec.rb
198
- - spec/provider/openshift_spec.rb
199
- - spec/provider/ops_works_spec.rb
200
- - spec/provider/packagecloud_spec.rb
201
- - spec/provider/puppet_forge_spec.rb
202
- - spec/provider/pypi_spec.rb
203
- - spec/provider/releases_spec.rb
204
- - spec/provider/rubygems_spec.rb
205
- - spec/provider/s3_spec.rb
206
- - spec/provider/scalingo_spec.rb
207
- - spec/provider/script_spec.rb
208
- - spec/provider/surge_spec.rb
209
- - spec/provider/testfairy_spec.rb
210
- - spec/provider/transifex_spec.rb
211
177
  - spec/provider_spec.rb
212
178
  - spec/spec_helper.rb
213
179
  homepage: https://github.com/travis-ci/dpl
@@ -222,16 +188,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
222
188
  requirements:
223
189
  - - ">="
224
190
  - !ruby/object:Gem::Version
225
- version: 1.9.3
191
+ version: '2.2'
226
192
  required_rubygems_version: !ruby/object:Gem::Requirement
227
193
  requirements:
228
- - - ">"
194
+ - - ">="
229
195
  - !ruby/object:Gem::Version
230
- version: 1.3.1
196
+ version: '0'
231
197
  requirements: []
232
198
  rubyforge_project:
233
- rubygems_version: 2.7.4
199
+ rubygems_version: 2.6.13
234
200
  signing_key:
235
201
  specification_version: 4
236
202
  summary: deploy tool
237
- test_files: []
203
+ test_files:
204
+ - spec/cli_spec.rb
205
+ - spec/provider_spec.rb
206
+ - spec/spec_helper.rb
@@ -1,13 +0,0 @@
1
- module DPL
2
- class Provider
3
- class Anynines < CloudFoundry
4
-
5
- def check_auth
6
- initial_go_tools_install
7
- context.shell "./cf api https://api.aws.ie.a9s.eu"
8
- context.shell "./cf login -u #{option(:username)} -p #{option(:password)} -o #{option(:organization)} -s #{option(:space)}"
9
- end
10
-
11
- end
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- module DPL
2
- class Provider
3
- class Appfog < Provider
4
- requires 'json_pure', :version => '< 2.0', :load => 'json/pure'
5
- requires 'af', :load => 'vmc'
6
-
7
- def check_auth
8
- context.shell "af login --email=#{option(:email)} --password=#{option(:password)}"
9
- end
10
-
11
- def needs_key?
12
- false
13
- end
14
-
15
- def push_app
16
- context.shell "af update #{options[:app] || File.basename(Dir.getwd)}"
17
- context.shell "af logout"
18
- end
19
- end
20
- end
21
- end
@@ -1,108 +0,0 @@
1
- module DPL
2
- class Provider
3
- class Atlas < Provider
4
- GIMME_URL = 'https://raw.githubusercontent.com/meatballhat/gimme/master/gimme'
5
- ATLAS_UPLOAD_CLI_GO_REMOTE = 'github.com/hashicorp/atlas-upload-cli'
6
- ATLAS_UPLOAD_BOOL_ARGS = %w(vcs debug).map(&:to_sym).freeze
7
- ATLAS_UPLOAD_KV_ARGS = %w(address).map(&:to_sym).freeze
8
- ATLAS_UPLOAD_KV_MULTI_ARGS = %w(exclude include metadata).map(&:to_sym).freeze
9
- ATLAS_UPLOAD_INSTALL_SCRIPT = <<-EOF.gsub(/^ {8}/, '').strip
10
- if ! command -v atlas-upload &>/dev/null ; then
11
- mkdir -p $HOME/bin $HOME/gopath/src
12
- export PATH="$HOME/bin:$PATH"
13
-
14
- if ! command -v gimme &>/dev/null ; then
15
- curl -sL -o $HOME/bin/gimme #{GIMME_URL}
16
- chmod +x $HOME/bin/gimme
17
- fi
18
-
19
- if [ -z $GOPATH ]; then
20
- export GOPATH="$HOME/gopath"
21
- else
22
- export GOPATH="$HOME/gopath:$GOPATH"
23
- fi
24
- eval "$(gimme 1.6)" &> /dev/null
25
-
26
- go get #{ATLAS_UPLOAD_CLI_GO_REMOTE}
27
- cp $HOME/gopath/bin/atlas-upload-cli $HOME/bin/atlas-upload
28
- fi
29
- EOF
30
-
31
- experimental 'Atlas'
32
-
33
- def deploy
34
- assert_app_present!
35
- install_atlas_upload
36
- super
37
- end
38
-
39
- def check_auth
40
- ENV['ATLAS_TOKEN'] = options[:token] if options[:token]
41
- error 'Missing ATLAS_TOKEN' unless ENV['ATLAS_TOKEN']
42
- end
43
-
44
- def needs_key?
45
- false
46
- end
47
-
48
- def push_app
49
- unless options[:paths]
50
- here = Dir.pwd
51
- warn "No paths specified. Using #{here.inspect}."
52
- options[:paths] = here
53
- end
54
-
55
- Array(options[:paths]).each do |path|
56
- context.shell "atlas-upload #{atlas_upload_args} #{atlas_app} #{path}"
57
- end
58
- end
59
-
60
- private
61
-
62
- def install_atlas_upload
63
- without_git_http_user_agent do
64
- context.shell ATLAS_UPLOAD_INSTALL_SCRIPT
65
- end
66
- end
67
-
68
- def assert_app_present!
69
- error 'Missing Atlas app name' unless options.key?(:app)
70
- end
71
-
72
- def atlas_upload_args
73
- return options[:args] if options.key?(:args)
74
- return @atlas_upload_args if @atlas_upload_args
75
-
76
- args = []
77
-
78
- ATLAS_UPLOAD_BOOL_ARGS.each do |arg|
79
- args << "-#{arg}" if options.key?(arg)
80
- end
81
-
82
- ATLAS_UPLOAD_KV_ARGS.each do |arg|
83
- args << ["-#{arg}", options[arg].inspect].join('=') if options.key?(arg)
84
- end
85
-
86
- ATLAS_UPLOAD_KV_MULTI_ARGS.each do |arg|
87
- next unless options.key?(arg)
88
- Array(options[arg]).each do |arg_entry|
89
- args << ["-#{arg}", arg_entry.inspect].join('=')
90
- end
91
- end
92
-
93
- @atlas_upload_args = args.join(' ')
94
- end
95
-
96
- def atlas_app
97
- @atlas_app ||= options.fetch(:app).to_s
98
- end
99
-
100
- def without_git_http_user_agent(&block)
101
- git_http_user_agent = ENV.delete("GIT_HTTP_USER_AGENT")
102
- yield
103
- ENV["GIT_HTTP_USER_AGENT"] = git_http_user_agent
104
- end
105
-
106
- end
107
- end
108
- end