dpl 1.7.17.travis.868.4 → 1.7.17.travis.869.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +1 -1
- data/lib/dpl/provider.rb +28 -26
- data/lib/dpl/provider/atlas.rb +98 -0
- data/lib/dpl/provider/transifex.rb +45 -0
- data/spec/provider/atlas_spec.rb +97 -0
- data/spec/provider/transifex_spec.rb +110 -0
- metadata +5 -1
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
ZGMyYWFmM2JkMTU0MTBiM2MxZDJhOWQ5NDA3YjM0ZTRjMzQ1MjI5OA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MGY2MjM1YzFiYjNmYTU4MDgyYjRmNzM0YjhjOTgwOTIxOTQxMzVjMQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
N2JjMzljMjViMTI4NDUwYjQyOWE0ODljZmRiYmI0ODQ4ODA3M2RjNWM4NDM2
|
|
10
|
+
NWI1MzRiOTJjMTY4YTgwYzc0ODY0MGU0YzQ3MDEzZWViZTgyMjljNzhiYTE4
|
|
11
|
+
MTNmMzcyOTEyOGZiOGRmMjZkNmE1NjdmNTQ2OTg2MGM0M2RiMWQ=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ZTdlNWI3ZGQwYTVhYjAxOTJkMjI0MDlkOTYyYTE4MGVmZmIzMDcxOTIxNmE4
|
|
14
|
+
NmE2NGNmY2RjMTEzZTc2MmY1YTdmYjUzYjI1OTM2MWM0MjljNjIyYjQ0ZTc0
|
|
15
|
+
MDA2NjczNGQxZDFhODBiNjQ2NzdjMzVmMDVlMTk2MWU3NjQzODI=
|
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Dpl [](https://travis-ci.org/travis-ci/dpl) [](https://codeclimate.com/github/travis-ci/dpl) [](http://badge.fury.io/rb/dpl) [](https://travis-ci.org/travis-ci/dpl) [](https://codeclimate.com/github/travis-ci/dpl) [](http://badge.fury.io/rb/dpl) [](https://coveralls.io/github/travis-ci/dpl?branch=master)
|
|
2
2
|
|
|
3
3
|
## Supported Providers:
|
|
4
4
|
Dpl supports the following providers:
|
data/lib/dpl/provider.rb
CHANGED
|
@@ -6,40 +6,42 @@ module DPL
|
|
|
6
6
|
class Provider
|
|
7
7
|
include FileUtils
|
|
8
8
|
|
|
9
|
-
autoload :Heroku, 'dpl/provider/heroku'
|
|
10
9
|
autoload :Appfog, 'dpl/provider/appfog'
|
|
11
|
-
autoload :
|
|
12
|
-
autoload :
|
|
13
|
-
autoload :
|
|
14
|
-
autoload :
|
|
15
|
-
autoload :
|
|
16
|
-
autoload :
|
|
17
|
-
autoload :S3, 'dpl/provider/s3'
|
|
10
|
+
autoload :Atlas, 'dpl/provider/atlas'
|
|
11
|
+
autoload :Biicode, 'dpl/provider/biicode'
|
|
12
|
+
autoload :Bintray, 'dpl/provider/bintray'
|
|
13
|
+
autoload :BitBalloon, 'dpl/provider/bitballoon'
|
|
14
|
+
autoload :ChefSupermarket, 'dpl/provider/chef_supermarket'
|
|
15
|
+
autoload :Cloud66, 'dpl/provider/cloud66'
|
|
18
16
|
autoload :CloudControl, 'dpl/provider/cloudcontrol'
|
|
17
|
+
autoload :CloudFiles, 'dpl/provider/cloud_files'
|
|
19
18
|
autoload :CloudFoundry, 'dpl/provider/cloud_foundry'
|
|
20
19
|
autoload :CodeDeploy, 'dpl/provider/code_deploy'
|
|
21
|
-
autoload :Lambda, 'dpl/provider/lambda'
|
|
22
|
-
autoload :PyPI, 'dpl/provider/pypi'
|
|
23
|
-
autoload :Divshot, 'dpl/provider/divshot'
|
|
24
|
-
autoload :CloudFiles, 'dpl/provider/cloud_files'
|
|
25
|
-
autoload :OpsWorks, 'dpl/provider/ops_works'
|
|
26
|
-
autoload :Modulus, 'dpl/provider/modulus'
|
|
27
|
-
autoload :Releases, 'dpl/provider/releases'
|
|
28
|
-
autoload :Cloud66, 'dpl/provider/cloud66'
|
|
29
|
-
autoload :Hackage, 'dpl/provider/hackage'
|
|
30
20
|
autoload :Deis, 'dpl/provider/deis'
|
|
31
|
-
autoload :
|
|
32
|
-
autoload :
|
|
33
|
-
autoload :BitBalloon, 'dpl/provider/bitballoon'
|
|
34
|
-
autoload :Biicode, 'dpl/provider/biicode'
|
|
21
|
+
autoload :Divshot, 'dpl/provider/divshot'
|
|
22
|
+
autoload :DotCloud, 'dpl/provider/dot_cloud'
|
|
35
23
|
autoload :ElasticBeanstalk, 'dpl/provider/elastic_beanstalk'
|
|
36
|
-
autoload :
|
|
37
|
-
autoload :Packagecloud, 'dpl/provider/packagecloud'
|
|
38
|
-
autoload :ChefSupermarket, 'dpl/provider/chef_supermarket'
|
|
39
|
-
autoload :TestFairy, 'dpl/provider/testfairy'
|
|
24
|
+
autoload :EngineYard, 'dpl/provider/engine_yard'
|
|
40
25
|
autoload :ExoScale, 'dpl/provider/exoscale'
|
|
41
|
-
autoload :
|
|
26
|
+
autoload :GAE, 'dpl/provider/gae'
|
|
27
|
+
autoload :GCS, 'dpl/provider/gcs'
|
|
28
|
+
autoload :Hackage, 'dpl/provider/hackage'
|
|
29
|
+
autoload :Heroku, 'dpl/provider/heroku'
|
|
30
|
+
autoload :Lambda, 'dpl/provider/lambda'
|
|
31
|
+
autoload :Modulus, 'dpl/provider/modulus'
|
|
32
|
+
autoload :Nodejitsu, 'dpl/provider/nodejitsu'
|
|
33
|
+
autoload :NPM, 'dpl/provider/npm'
|
|
34
|
+
autoload :Openshift, 'dpl/provider/openshift'
|
|
35
|
+
autoload :OpsWorks, 'dpl/provider/ops_works'
|
|
36
|
+
autoload :Packagecloud, 'dpl/provider/packagecloud'
|
|
37
|
+
autoload :PuppetForge, 'dpl/provider/puppet_forge'
|
|
38
|
+
autoload :PyPI, 'dpl/provider/pypi'
|
|
39
|
+
autoload :Releases, 'dpl/provider/releases'
|
|
40
|
+
autoload :RubyGems, 'dpl/provider/rubygems'
|
|
41
|
+
autoload :S3, 'dpl/provider/s3'
|
|
42
42
|
autoload :Script, 'dpl/provider/script'
|
|
43
|
+
autoload :TestFairy, 'dpl/provider/testfairy'
|
|
44
|
+
autoload :Transifex, 'dpl/provider/transifex'
|
|
43
45
|
|
|
44
46
|
|
|
45
47
|
def self.new(context, options)
|
|
@@ -0,0 +1,98 @@
|
|
|
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
|
+
export GOPATH="$HOME/gopath:$GOPATH"
|
|
20
|
+
eval "$(gimme 1.4.2)" &>/dev/null
|
|
21
|
+
|
|
22
|
+
go get #{ATLAS_UPLOAD_CLI_GO_REMOTE}
|
|
23
|
+
pushd $HOME/gopath/src/#{ATLAS_UPLOAD_CLI_GO_REMOTE} &>/dev/null
|
|
24
|
+
make &>/dev/null
|
|
25
|
+
cp bin/atlas-upload $HOME/bin/atlas-upload
|
|
26
|
+
popd &>/dev/null
|
|
27
|
+
fi
|
|
28
|
+
EOF
|
|
29
|
+
|
|
30
|
+
experimental 'Atlas'
|
|
31
|
+
|
|
32
|
+
def deploy
|
|
33
|
+
assert_app_present!
|
|
34
|
+
install_atlas_upload
|
|
35
|
+
super
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def check_auth
|
|
39
|
+
ENV['ATLAS_TOKEN'] = options[:token] if options[:token]
|
|
40
|
+
error 'Missing ATLAS_TOKEN' unless ENV['ATLAS_TOKEN']
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def needs_key?
|
|
44
|
+
false
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def push_app
|
|
48
|
+
unless options[:paths]
|
|
49
|
+
here = Dir.pwd
|
|
50
|
+
warn "No paths specified. Using #{here.inspect}."
|
|
51
|
+
options[:paths] = here
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
Array(options[:paths]).each do |path|
|
|
55
|
+
context.shell "atlas-upload #{atlas_upload_args} #{atlas_app} #{path}"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
def install_atlas_upload
|
|
62
|
+
context.shell ATLAS_UPLOAD_INSTALL_SCRIPT
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def assert_app_present!
|
|
66
|
+
error 'Missing Atlas app name' unless options.key?(:app)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def atlas_upload_args
|
|
70
|
+
return options[:args] if options.key?(:args)
|
|
71
|
+
return @atlas_upload_args if @atlas_upload_args
|
|
72
|
+
|
|
73
|
+
args = []
|
|
74
|
+
|
|
75
|
+
ATLAS_UPLOAD_BOOL_ARGS.each do |arg|
|
|
76
|
+
args << "-#{arg}" if options.key?(arg)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
ATLAS_UPLOAD_KV_ARGS.each do |arg|
|
|
80
|
+
args << ["-#{arg}", options[arg].inspect].join('=') if options.key?(arg)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
ATLAS_UPLOAD_KV_MULTI_ARGS.each do |arg|
|
|
84
|
+
next unless options.key?(arg)
|
|
85
|
+
Array(options[arg]).each do |arg_entry|
|
|
86
|
+
args << ["-#{arg}", arg_entry.inspect].join('=')
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
@atlas_upload_args = args.join(' ')
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def atlas_app
|
|
94
|
+
@atlas_app ||= options.fetch(:app).to_s
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module DPL
|
|
2
|
+
class Provider
|
|
3
|
+
class Transifex < Provider
|
|
4
|
+
experimental 'Transifex'
|
|
5
|
+
|
|
6
|
+
DEFAULT_CLIENT_VERSION = '>=0.11'
|
|
7
|
+
DEFAULT_HOSTNAME = 'https://www.transifex.com'
|
|
8
|
+
|
|
9
|
+
def install_deploy_dependencies
|
|
10
|
+
cli_version = options[:cli_version] || DEFAULT_CLIENT_VERSION
|
|
11
|
+
self.class.pip 'transifex', 'transifex', cli_version
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def needs_key?
|
|
15
|
+
false
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def check_auth
|
|
19
|
+
install_deploy_dependencies
|
|
20
|
+
write_transifexrc
|
|
21
|
+
context.shell 'tx status'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def push_app
|
|
25
|
+
source_push
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def write_transifexrc
|
|
29
|
+
File.open(File.expand_path('~/.transifexrc'), 'w') do |f|
|
|
30
|
+
f.puts [
|
|
31
|
+
"[#{options[:hostname] || DEFAULT_HOSTNAME}]",
|
|
32
|
+
"hostname = #{options[:hostname] || DEFAULT_HOSTNAME}",
|
|
33
|
+
"username = #{options[:username]}",
|
|
34
|
+
"password = #{options[:password]}",
|
|
35
|
+
"token = #{options[:token]}",
|
|
36
|
+
].join("\n")
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def source_push
|
|
41
|
+
context.shell 'tx push --source --no-interactive', retry: true
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
require 'securerandom'
|
|
2
|
+
|
|
3
|
+
require 'spec_helper'
|
|
4
|
+
require 'dpl/provider/atlas'
|
|
5
|
+
|
|
6
|
+
describe DPL::Provider::Atlas do
|
|
7
|
+
before :all do
|
|
8
|
+
@origwd = Dir.pwd
|
|
9
|
+
@tmpdir = Dir.mktmpdir
|
|
10
|
+
ENV['HOME'] = @tmpdir
|
|
11
|
+
Dir.chdir(@tmpdir)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
after :all do
|
|
15
|
+
FileUtils.rm_rf(@tmpdir) if @tmpdir
|
|
16
|
+
Dir.chdir(@origwd) if @origwd
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
let(:context) { DummyContext.new }
|
|
20
|
+
let(:options) { { token: SecureRandom.hex(16), include: 'bin/*', exclude: 'tmp/*' } }
|
|
21
|
+
|
|
22
|
+
subject(:provider) { described_class.new(context, options) }
|
|
23
|
+
|
|
24
|
+
describe '#check_auth' do
|
|
25
|
+
specify 'without ATLAS_TOKEN' do
|
|
26
|
+
provider.options.delete(:token)
|
|
27
|
+
expect { provider.check_auth }.to raise_error(DPL::Error)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
specify 'with ATLAS_TOKEN' do
|
|
31
|
+
provider.options.update(token: SecureRandom.hex(16))
|
|
32
|
+
expect { provider.check_auth }.to_not raise_error
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe '#needs_key?' do
|
|
37
|
+
it { expect(provider.needs_key?).to eq(false) }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
describe '#deploy' do
|
|
41
|
+
specify 'without :app aborts' do
|
|
42
|
+
provider.options.delete(:app)
|
|
43
|
+
expect { provider.deploy }.to raise_error(DPL::Error)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
specify 'with :app does not abort' do
|
|
47
|
+
provider.options.update(app: 'dpl/testapp')
|
|
48
|
+
expect { provider.deploy }.to_not raise_error
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
describe 'building atlas-upload args' do
|
|
53
|
+
context 'when full args are provided' do
|
|
54
|
+
let(:options) { { args: '-whatever' } }
|
|
55
|
+
|
|
56
|
+
it 'returns full args directly' do
|
|
57
|
+
expect(provider.send(:atlas_upload_args)).to eql('-whatever')
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
context 'when no arg keys are provided' do
|
|
62
|
+
let(:options) { {} }
|
|
63
|
+
|
|
64
|
+
it 'returns empty args' do
|
|
65
|
+
expect(provider.send(:atlas_upload_args)).to eql('')
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
[
|
|
70
|
+
{
|
|
71
|
+
options: { wat: true, debug: true },
|
|
72
|
+
args: '-debug'
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
options: { vcs: nil },
|
|
76
|
+
args: '-vcs'
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
options: { include: ['build/*', 'bin/*'], exclude: '*.log' },
|
|
80
|
+
args: '-exclude="*.log" -include="build/*" -include="bin/*"'
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
options: {
|
|
84
|
+
include: 'bin/*',
|
|
85
|
+
exclude: ['*.log', '*.out'],
|
|
86
|
+
metadata: ['foo=bar', 'whatever=else']
|
|
87
|
+
},
|
|
88
|
+
args: '-exclude="*.log" -exclude="*.out" -include="bin/*" -metadata="foo=bar" -metadata="whatever=else"'
|
|
89
|
+
}
|
|
90
|
+
].each_with_index do |example, i|
|
|
91
|
+
context "with options #{example[:options].inspect}" do
|
|
92
|
+
let(:options) { example[:options] }
|
|
93
|
+
it { expect(provider.send(:atlas_upload_args)).to eql(example[:args]) }
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'dpl/provider/transifex'
|
|
3
|
+
|
|
4
|
+
describe DPL::Provider::Transifex do
|
|
5
|
+
let(:options) do
|
|
6
|
+
{
|
|
7
|
+
hostname: 'https://www.nottransifex.example.com',
|
|
8
|
+
username: 'travis',
|
|
9
|
+
password: 'secret',
|
|
10
|
+
token: 'abcd1234'
|
|
11
|
+
}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
subject :provider do
|
|
15
|
+
described_class.new(DummyContext.new, options)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
describe '#install_deploy_dependencies' do
|
|
19
|
+
context 'without version specified' do
|
|
20
|
+
example "installs #{described_class::DEFAULT_CLIENT_VERSION}" do
|
|
21
|
+
expect(provider.class).to(
|
|
22
|
+
receive(:pip).with('transifex', 'transifex', described_class::DEFAULT_CLIENT_VERSION)
|
|
23
|
+
)
|
|
24
|
+
provider.install_deploy_dependencies
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context 'with version specified' do
|
|
29
|
+
before do
|
|
30
|
+
options[:cli_version] = '==0.12'
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
example 'installs custom version' do
|
|
34
|
+
expect(provider.class).to(
|
|
35
|
+
receive(:pip).with('transifex', 'transifex', '==0.12')
|
|
36
|
+
)
|
|
37
|
+
provider.install_deploy_dependencies
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe '#needs_key?' do
|
|
43
|
+
example do
|
|
44
|
+
expect(provider.needs_key?).to eq(false)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe '#check_auth' do
|
|
49
|
+
before do
|
|
50
|
+
allow(provider).to receive(:install_deploy_dependencies)
|
|
51
|
+
allow(provider).to receive(:write_transifexrc)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
example 'installs dependencies' do
|
|
55
|
+
expect(provider).to receive(:install_deploy_dependencies)
|
|
56
|
+
provider.check_auth
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
example 'writes ~/.transifexrc' do
|
|
60
|
+
expect(provider).to receive(:write_transifexrc)
|
|
61
|
+
provider.check_auth
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
example 'performs a tx status' do
|
|
65
|
+
expect(provider.context).to receive(:shell).with('tx status')
|
|
66
|
+
provider.check_auth
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
describe '#push_app' do
|
|
71
|
+
example 'delegates to the #source_push method' do
|
|
72
|
+
expect(provider).to receive(:source_push)
|
|
73
|
+
provider.push_app
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
describe '#source_push' do
|
|
78
|
+
example 'performs a tx push' do
|
|
79
|
+
expect(provider.context).to(
|
|
80
|
+
receive(:shell).with('tx push --source --no-interactive', retry: true)
|
|
81
|
+
)
|
|
82
|
+
provider.source_push
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
describe '#write_transifexrc' do
|
|
87
|
+
let(:fake_config) { StringIO.new }
|
|
88
|
+
|
|
89
|
+
before do
|
|
90
|
+
allow(File).to receive(:open).and_yield(fake_config)
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
example 'writes config with hostname header' do
|
|
94
|
+
expect(fake_config).to receive(:puts).with(/^\[#{options[:hostname]}\]/)
|
|
95
|
+
provider.write_transifexrc
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
%w(
|
|
99
|
+
hostname
|
|
100
|
+
username
|
|
101
|
+
password
|
|
102
|
+
token
|
|
103
|
+
).map(&:to_sym).each do |key|
|
|
104
|
+
example "writes config with #{key} key" do
|
|
105
|
+
expect(fake_config).to receive(:puts).with(/^#{key} = #{options[key]}$/)
|
|
106
|
+
provider.write_transifexrc
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dpl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.7.17.travis.
|
|
4
|
+
version: 1.7.17.travis.869.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Haase
|
|
@@ -115,6 +115,7 @@ files:
|
|
|
115
115
|
- lib/dpl/error.rb
|
|
116
116
|
- lib/dpl/provider.rb
|
|
117
117
|
- lib/dpl/provider/appfog.rb
|
|
118
|
+
- lib/dpl/provider/atlas.rb
|
|
118
119
|
- lib/dpl/provider/biicode.rb
|
|
119
120
|
- lib/dpl/provider/bintray.rb
|
|
120
121
|
- lib/dpl/provider/bitballoon.rb
|
|
@@ -154,12 +155,14 @@ files:
|
|
|
154
155
|
- lib/dpl/provider/s3.rb
|
|
155
156
|
- lib/dpl/provider/script.rb
|
|
156
157
|
- lib/dpl/provider/testfairy.rb
|
|
158
|
+
- lib/dpl/provider/transifex.rb
|
|
157
159
|
- lib/dpl/version.rb
|
|
158
160
|
- notes/dotcloud.md
|
|
159
161
|
- notes/engine_yard.md
|
|
160
162
|
- notes/heroku.md
|
|
161
163
|
- spec/cli_spec.rb
|
|
162
164
|
- spec/provider/appfog_spec.rb
|
|
165
|
+
- spec/provider/atlas_spec.rb
|
|
163
166
|
- spec/provider/bintray_spec.rb
|
|
164
167
|
- spec/provider/bitballoon_spec.rb
|
|
165
168
|
- spec/provider/chef_supermarket_spec.rb
|
|
@@ -193,6 +196,7 @@ files:
|
|
|
193
196
|
- spec/provider/s3_spec.rb
|
|
194
197
|
- spec/provider/script_spec.rb
|
|
195
198
|
- spec/provider/testfairy_spec.rb
|
|
199
|
+
- spec/provider/transifex_spec.rb
|
|
196
200
|
- spec/provider_spec.rb
|
|
197
201
|
- spec/spec_helper.rb
|
|
198
202
|
homepage: https://github.com/travis-ci/dpl
|