capistrano-env 0.3.3 → 1.0.0
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 +5 -5
- data/.rubocop.yml +9 -7
- data/.travis.yml +9 -6
- data/Guardfile +4 -3
- data/README.md +6 -30
- data/capistrano-env.gemspec +7 -8
- data/lib/capistrano-env.rb +0 -1
- data/lib/capistrano/env.rb +2 -30
- data/lib/capistrano/env/builder.rb +9 -0
- data/lib/capistrano/env/config.rb +25 -42
- data/lib/capistrano/env/version.rb +1 -1
- data/lib/capistrano/tasks/env.rake +30 -0
- data/spec/capistrano/env/builder_spec.rb +19 -0
- data/spec/capistrano/env/config_spec.rb +20 -23
- data/spec/gem_helper.rb +1 -1
- data/spec/spec_helper.rb +3 -58
- metadata +18 -28
- data/gemfiles/cap2.gemfile +0 -6
- data/gemfiles/cap3.gemfile +0 -6
- data/lib/capistrano/env/formatter.rb +0 -11
- data/lib/capistrano/env/formatter/dotenv_formatter.rb +0 -15
- data/lib/capistrano/env/v2.rb +0 -4
- data/lib/capistrano/env/v2/plugin.rb +0 -34
- data/lib/capistrano/env/v3.rb +0 -4
- data/lib/capistrano/env/v3/tasks/env.rake +0 -19
- data/spec/capistrano/env/formatter/dotenv_formatter_spec.rb +0 -12
- data/spec/capistrano/env/v2/plugin_spec.rb +0 -24
- data/spec/capistrano/env_spec.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3c67218f02b494ffddd288ae9b13a87275f92f7a50d9f4ee47359a23b1edc7e3
|
4
|
+
data.tar.gz: a0c22ec632adfc0fdd70aef263029951872300f0ac9c41dc4b98a001cb1d2b44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bedaeb21dfc1e856ea6aac665e4fe635174c5c763386f1b0937b5e1eaabbdae8470dd726d712e69ce304b0ec3003637ee054f4bfd737971f84402ebdc9fedff6
|
7
|
+
data.tar.gz: b1be64e4900341542466bb6998ed1545ae10fab3d226ba5e959dc473b5300ff7ab27e6129e11254aced6c05d9542aa944d53967f71ab3e7fdda1b02cf03c800c
|
data/.rubocop.yml
CHANGED
@@ -1,12 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- vendor/bundle/**/*
|
4
|
+
- gemfiles/vendor/bundle/**/*
|
5
|
+
Metrics/BlockLength:
|
6
|
+
Exclude:
|
7
|
+
- spec/**/*_spec.rb
|
3
8
|
Metrics/LineLength:
|
4
|
-
|
5
|
-
|
6
|
-
Enabled: false
|
9
|
+
Exclude:
|
10
|
+
- spec/**/*_spec.rb
|
7
11
|
Style/Documentation:
|
8
12
|
Enabled: false
|
9
13
|
Style/FileName:
|
10
14
|
Enabled: false
|
11
|
-
Style/RegexpLiteral:
|
12
|
-
Enabled: false
|
data/.travis.yml
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
language: ruby
|
2
|
+
sudo: false
|
3
|
+
cache: bundler
|
2
4
|
rvm:
|
3
|
-
- 2.
|
4
|
-
- 2.
|
5
|
-
|
6
|
-
|
7
|
-
-
|
5
|
+
- 2.3.7
|
6
|
+
- 2.4.4
|
7
|
+
- 2.5.1
|
8
|
+
before_install:
|
9
|
+
- gem update --system --no-document
|
10
|
+
- gem i bundler
|
8
11
|
script:
|
9
|
-
- bundle exec rake spec
|
10
12
|
- bundle exec rubocop
|
13
|
+
- bundle exec rake spec
|
data/Guardfile
CHANGED
@@ -11,11 +11,12 @@
|
|
11
11
|
# * 'just' rspec: 'rspec'
|
12
12
|
guard :rspec, cmd: 'bundle exec rspec' do
|
13
13
|
watch(%r{^spec/.+_spec\.rb$})
|
14
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec
|
14
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
15
15
|
watch('spec/spec_helper.rb') { 'spec' }
|
16
16
|
end
|
17
17
|
|
18
|
-
guard :rubocop, cli: '--
|
19
|
-
watch(
|
18
|
+
guard :rubocop, cli: '-aD --except Lint/Debugger' do
|
19
|
+
watch('Gemfile')
|
20
|
+
watch(/.+\.rb$/)
|
20
21
|
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
21
22
|
end
|
data/README.md
CHANGED
@@ -3,13 +3,8 @@
|
|
3
3
|
[](https://coveralls.io/r/masarakki/capistrano-env?branch=master)
|
4
4
|
|
5
5
|
# Capistrano::Env
|
6
|
-
Capistrano with Env via file
|
7
|
-
|
8
|
-
## Notice!
|
9
6
|
|
10
|
-
|
11
|
-
Now `dotenv_formatter` is avaiable, it create `.env` file instead of `capenv.rb` file,
|
12
|
-
and use `dotenv` or `dotenv-rails` gem to read `.env` file.
|
7
|
+
Capistrano with Env via file
|
13
8
|
|
14
9
|
## Installation
|
15
10
|
|
@@ -29,45 +24,26 @@ Or install it yourself as:
|
|
29
24
|
|
30
25
|
### 1. set env names in deploy.rb
|
31
26
|
|
32
|
-
#### Capistrano 2.x
|
33
|
-
|
34
|
-
in `deploy.rb`
|
35
|
-
|
36
|
-
```ruby
|
37
|
-
require 'capistrano/env/v2'
|
38
|
-
|
39
|
-
capenv.use do |env|
|
40
|
-
env.add /^MYAPP_/
|
41
|
-
env.add /^MYAPP_/ do |key|
|
42
|
-
key.gsub /^MYAPP_/, '' # replace keyname like MYAPP_DATABASE_URL => DATABASE_URL
|
43
|
-
end
|
44
|
-
env.add 'UNICORN_PROCESSES'
|
45
|
-
env.add 'HOGE', 'hage'
|
46
|
-
env.formatter = :dotenv #=> default is :ruby, but it is deprecated now.
|
47
|
-
end
|
48
|
-
```
|
49
|
-
|
50
|
-
#### Capistrano 3.x
|
51
|
-
|
52
27
|
in `Capfile`
|
53
28
|
|
54
29
|
```ruby
|
55
|
-
require 'capistrano/env
|
30
|
+
require 'capistrano/env'
|
56
31
|
```
|
57
32
|
|
58
33
|
in `deploy.rb`
|
59
34
|
|
60
35
|
```ruby
|
61
|
-
|
36
|
+
|
37
|
+
# New
|
38
|
+
set :capenv, ->(env) {
|
62
39
|
env.add /^MYAPP_/
|
63
40
|
env.add /^MYAPP_/ do |key|
|
64
41
|
key.gsub /^MYAPP_/, '' # replace keyname like MYAPP_DATABASE_URL => DATABASE_URL
|
65
42
|
end
|
66
43
|
env.add 'UNICORN_PROCESSES'
|
67
44
|
env.add 'HOGE', 'hage'
|
68
|
-
env.formatter = :dotenv #=> default is :ruby, but it is deprecated now.
|
69
45
|
env.filemode = 0644 #=> default is 0640.
|
70
|
-
|
46
|
+
}
|
71
47
|
```
|
72
48
|
|
73
49
|
### 2. deploy
|
data/capistrano-env.gemspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('
|
1
|
+
|
2
|
+
lib = File.expand_path('lib', __dir__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'capistrano/env/version'
|
5
5
|
|
@@ -17,20 +17,19 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
|
-
spec.post_install_message = 'formatter :ruby is removed! use :dotenv instead of :ruby.'
|
21
20
|
|
22
21
|
spec.add_dependency 'capistrano'
|
23
22
|
spec.add_dependency 'sshkit'
|
24
23
|
|
25
24
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
26
|
-
spec.add_development_dependency '
|
27
|
-
spec.add_development_dependency 'rspec'
|
28
|
-
spec.add_development_dependency 'rubocop'
|
29
|
-
spec.add_development_dependency 'sqlite3'
|
25
|
+
spec.add_development_dependency 'coveralls'
|
30
26
|
spec.add_development_dependency 'guard'
|
31
27
|
spec.add_development_dependency 'guard-rspec'
|
32
28
|
spec.add_development_dependency 'guard-rubocop'
|
33
29
|
spec.add_development_dependency 'pry'
|
34
30
|
spec.add_development_dependency 'pry-doc'
|
35
|
-
spec.add_development_dependency '
|
31
|
+
spec.add_development_dependency 'rake'
|
32
|
+
spec.add_development_dependency 'rspec'
|
33
|
+
spec.add_development_dependency 'rspec-its'
|
34
|
+
spec.add_development_dependency 'rubocop'
|
36
35
|
end
|
data/lib/capistrano-env.rb
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
require 'capistrano/env/v2' if defined?(Capistrano) && Capistrano.respond_to?(:plugin) # capistrano-2.x
|
data/lib/capistrano/env.rb
CHANGED
@@ -1,31 +1,3 @@
|
|
1
|
+
require 'capistrano/env/version'
|
1
2
|
require 'capistrano/env/config'
|
2
|
-
|
3
|
-
module Capistrano
|
4
|
-
module Env
|
5
|
-
def self.use(&block)
|
6
|
-
block.call(config)
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.envs
|
10
|
-
config.envs
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.to_s
|
14
|
-
config.capenv_content
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.filename
|
18
|
-
config.capenv_file
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.filemode
|
22
|
-
config.capenv_filemode
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def self.config
|
28
|
-
@config ||= Capistrano::Env::Config.new
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
3
|
+
load File.expand_path('tasks/env.rake', __dir__)
|
@@ -1,64 +1,47 @@
|
|
1
|
-
require 'capistrano/env/
|
1
|
+
require 'capistrano/env/builder'
|
2
2
|
|
3
3
|
module Capistrano
|
4
4
|
module Env
|
5
5
|
class Config
|
6
|
-
|
7
|
-
attr_accessor :filemode
|
6
|
+
include Capistrano::Env::Builder
|
7
|
+
attr_accessor :filemode, :filename
|
8
|
+
attr_reader :envs
|
8
9
|
|
9
10
|
def initialize
|
10
|
-
@
|
11
|
-
@
|
11
|
+
@envs = {}
|
12
|
+
@filemode = '0640'
|
13
|
+
@filename = '.env'
|
14
|
+
yield(self) if block_given?
|
12
15
|
end
|
13
16
|
|
14
|
-
def
|
15
|
-
|
16
|
-
@formatter
|
17
|
+
def inspect
|
18
|
+
envs
|
17
19
|
end
|
18
20
|
|
19
|
-
def filemode
|
20
|
-
self.filemode = '0640' unless @filemode
|
21
|
-
@filemode
|
22
|
-
end
|
23
|
-
|
24
|
-
attr_writer :formatter
|
25
|
-
attr_writer :filemode
|
26
|
-
|
27
21
|
def add(name_or_regexp, val = nil, &block)
|
28
22
|
if val && name_or_regexp.is_a?(String)
|
29
|
-
|
23
|
+
set_env(name_or_regexp, val)
|
30
24
|
else
|
31
|
-
|
25
|
+
find_envs(name_or_regexp).each do |key, value|
|
26
|
+
set_env(key, value, &block)
|
27
|
+
end
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
35
|
-
|
36
|
-
@formatter_class ||= begin
|
37
|
-
require "capistrano/env/formatter/#{formatter}_formatter"
|
38
|
-
Capistrano::Env::Formatter.const_get "#{formatter.capitalize}Formatter"
|
39
|
-
end
|
40
|
-
end
|
31
|
+
private
|
41
32
|
|
42
|
-
def
|
43
|
-
|
44
|
-
@
|
45
|
-
key_values = key.is_a?(Regexp) ? ENV.select { |x| x =~ key } : ENV.select { |x| x == key }
|
46
|
-
key_values = Hash[key_values.map { |k, v| [block.call(k), v] }] if block
|
47
|
-
result.merge!(key_values)
|
48
|
-
end
|
49
|
-
result.merge(@values)
|
33
|
+
def set_env(key, value)
|
34
|
+
key = yield(key) if block_given?
|
35
|
+
@envs[key] = value
|
50
36
|
end
|
51
37
|
|
52
|
-
def
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
def capenv_filemode
|
61
|
-
filemode
|
38
|
+
def find_envs(key)
|
39
|
+
case key
|
40
|
+
when Regexp
|
41
|
+
ENV.select { |x| x =~ key }
|
42
|
+
else
|
43
|
+
ENV.select { |x| x == key }
|
44
|
+
end
|
62
45
|
end
|
63
46
|
end
|
64
47
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
namespace :capenv do
|
2
|
+
desc 'copy .env to release_path'
|
3
|
+
task :copy do
|
4
|
+
on roles(:all) do
|
5
|
+
capenv = fetch(:capenv)
|
6
|
+
upload! StringIO.new(capenv.content),
|
7
|
+
File.join(fetch(:release_path), capenv.filename),
|
8
|
+
mode: capenv.filemode
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
task :set_envs do
|
13
|
+
capenv = Capistrano::Env::Config.new(&fetch(:capenv))
|
14
|
+
set :capenv, capenv
|
15
|
+
set :default_environment, capenv.envs
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
namespace :load do
|
20
|
+
task :defautls do
|
21
|
+
set :capenv, -> { ->(env) {} }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
stages.each do |stage|
|
26
|
+
after stage, 'capenv:set_envs'
|
27
|
+
end
|
28
|
+
|
29
|
+
before 'deploy:updated', 'capenv:copy'
|
30
|
+
before 'deploy:restart', 'capenv:copy'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'gem_helper'
|
2
|
+
require 'capistrano/env/builder'
|
3
|
+
|
4
|
+
RSpec.describe Capistrano::Env::Builder do
|
5
|
+
let(:target) do
|
6
|
+
Class.new do
|
7
|
+
include Capistrano::Env::Builder
|
8
|
+
|
9
|
+
def envs
|
10
|
+
{ 'HELLO' => 'WORLD', 'HOGE' => '1,2,3' }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
let(:expect_string) { "HELLO=\"WORLD\"\nHOGE=\"1,2,3\"\n" }
|
16
|
+
|
17
|
+
subject { target.new }
|
18
|
+
its(:content) { is_expected.to eq expect_string }
|
19
|
+
end
|
@@ -1,28 +1,20 @@
|
|
1
1
|
require 'gem_helper'
|
2
2
|
require 'capistrano/env/config'
|
3
3
|
|
4
|
-
describe Capistrano::Env::Config do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
it {
|
4
|
+
RSpec.describe Capistrano::Env::Config do
|
5
|
+
describe 'new with block' do
|
6
|
+
before do
|
7
|
+
ENV['CAPENV_TEST_A'] = 'a'
|
8
|
+
end
|
9
|
+
let(:proc) { ->(env) { env.add(/CAPENV_TEST/) } }
|
10
|
+
subject { described_class.new(&proc).envs }
|
11
|
+
it { is_expected.to eq('CAPENV_TEST_A' => 'a') }
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
14
|
+
let(:config) { described_class.new }
|
15
|
+
subject { config }
|
17
16
|
|
18
|
-
|
19
|
-
it do
|
20
|
-
require 'capistrano/env/formatter/dotenv_formatter'
|
21
|
-
allow(config).to receive(:envs).and_return('a' => 'b')
|
22
|
-
expect(Capistrano::Env::Formatter::DotenvFormatter).to receive(:format).with('a' => 'b').and_return 'hello'
|
23
|
-
expect(config.capenv_content).to eq 'hello'
|
24
|
-
end
|
25
|
-
end
|
17
|
+
its(:filename) { is_expected.to eq '.env' }
|
26
18
|
|
27
19
|
describe '#add' do
|
28
20
|
before do
|
@@ -31,26 +23,30 @@ describe Capistrano::Env::Config do
|
|
31
23
|
ENV['CAPENV_TEST'] = '$'
|
32
24
|
ENV['VAPENV_XYZ_A'] = 'X'
|
33
25
|
end
|
26
|
+
subject { config.envs }
|
34
27
|
|
35
28
|
context 'with regex' do
|
36
29
|
before do
|
37
30
|
config.add(/^CAPENV_TEST_/)
|
38
31
|
end
|
39
|
-
it {
|
32
|
+
it { is_expected.to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => '1,2,3') }
|
40
33
|
end
|
34
|
+
|
41
35
|
context 'with string' do
|
42
36
|
before do
|
43
37
|
config.add 'CAPENV_TEST'
|
44
38
|
end
|
45
|
-
it {
|
39
|
+
it { is_expected.to eq('CAPENV_TEST' => '$') }
|
46
40
|
end
|
41
|
+
|
47
42
|
describe 'overridable' do
|
48
43
|
before do
|
49
44
|
config.add(/^CAPENV_TEST_/)
|
50
45
|
config.add 'CAPENV_TEST_B', 'UNKO'
|
51
46
|
end
|
52
|
-
it {
|
47
|
+
it { is_expected.to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => 'UNKO') }
|
53
48
|
end
|
49
|
+
|
54
50
|
describe 'fix key with block' do
|
55
51
|
before do
|
56
52
|
config.add(/^CAPENV_TEST_/)
|
@@ -58,7 +54,8 @@ describe Capistrano::Env::Config do
|
|
58
54
|
key.gsub(/CAPENV_/, '')
|
59
55
|
end
|
60
56
|
end
|
61
|
-
|
57
|
+
|
58
|
+
it { is_expected.to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => '1,2,3', 'TEST_A' => 'a', 'TEST_B' => '1,2,3') }
|
62
59
|
end
|
63
60
|
end
|
64
61
|
end
|
data/spec/gem_helper.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,60 +1,5 @@
|
|
1
|
+
require 'pry'
|
2
|
+
require 'rspec/its'
|
3
|
+
|
1
4
|
RSpec.configure do |_config|
|
2
|
-
# The settings below are suggested to provide a good initial experience
|
3
|
-
# with RSpec, but feel free to customize to your heart's content.
|
4
|
-
# # These two settings work together to allow you to limit a spec run
|
5
|
-
# # to individual examples or groups you care about by tagging them with
|
6
|
-
# # `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
7
|
-
# # get run.
|
8
|
-
# config.filter_run :focus
|
9
|
-
# config.run_all_when_everything_filtered = true
|
10
|
-
#
|
11
|
-
# # Many RSpec users commonly either run the entire suite or an individual
|
12
|
-
# # file, and it's useful to allow more verbose output when running an
|
13
|
-
# # individual spec file.
|
14
|
-
# if config.files_to_run.one?
|
15
|
-
# # Use the documentation formatter for detailed output,
|
16
|
-
# # unless a formatter has already been configured
|
17
|
-
# # (e.g. via a command-line flag).
|
18
|
-
# config.default_formatter = 'doc'
|
19
|
-
# end
|
20
|
-
#
|
21
|
-
# # Print the 10 slowest examples and example groups at the
|
22
|
-
# # end of the spec run, to help surface which specs are running
|
23
|
-
# # particularly slow.
|
24
|
-
# config.profile_examples = 10
|
25
|
-
#
|
26
|
-
# # Run specs in random order to surface order dependencies. If you find an
|
27
|
-
# # order dependency and want to debug it, you can fix the order by providing
|
28
|
-
# # the seed, which is printed after each run.
|
29
|
-
# # --seed 1234
|
30
|
-
# config.order = :random
|
31
|
-
#
|
32
|
-
# # Seed global randomization in this process using the `--seed` CLI option.
|
33
|
-
# # Setting this allows you to use `--seed` to deterministically reproduce
|
34
|
-
# # test failures related to randomization by passing the same `--seed` value
|
35
|
-
# # as the one that triggered the failure.
|
36
|
-
# Kernel.srand config.seed
|
37
|
-
#
|
38
|
-
# # rspec-expectations config goes here. You can use an alternate
|
39
|
-
# # assertion/expectation library such as wrong or the stdlib/minitest
|
40
|
-
# # assertions if you prefer.
|
41
|
-
# config.expect_with :rspec do |expectations|
|
42
|
-
# # Enable only the newer, non-monkey-patching expect syntax.
|
43
|
-
# # For more details, see:
|
44
|
-
# # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
45
|
-
# expectations.syntax = :expect
|
46
|
-
# end
|
47
|
-
#
|
48
|
-
# # rspec-mocks config goes here. You can use an alternate test double
|
49
|
-
# # library (such as bogus or mocha) by changing the `mock_with` option here.
|
50
|
-
# config.mock_with :rspec do |mocks|
|
51
|
-
# # Enable only the newer, non-monkey-patching expect syntax.
|
52
|
-
# # For more details, see:
|
53
|
-
# # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
54
|
-
# mocks.syntax = :expect
|
55
|
-
#
|
56
|
-
# # Prevents you from mocking or stubbing a method that does not exist on
|
57
|
-
# # a real object. This is generally recommended.
|
58
|
-
# mocks.verify_partial_doubles = true
|
59
|
-
# end
|
60
5
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-env
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- masarakki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: coveralls
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: guard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: guard-rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: guard-rubocop
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: pry
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: pry-doc
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: rake
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: rspec
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -165,7 +165,7 @@ dependencies:
|
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: rspec-its
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
@@ -179,7 +179,7 @@ dependencies:
|
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
182
|
+
name: rubocop
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
@@ -209,29 +209,21 @@ files:
|
|
209
209
|
- README.md
|
210
210
|
- Rakefile
|
211
211
|
- capistrano-env.gemspec
|
212
|
-
- gemfiles/cap2.gemfile
|
213
|
-
- gemfiles/cap3.gemfile
|
214
212
|
- lib/capistrano-env.rb
|
215
213
|
- lib/capistrano/env.rb
|
214
|
+
- lib/capistrano/env/builder.rb
|
216
215
|
- lib/capistrano/env/config.rb
|
217
|
-
- lib/capistrano/env/formatter.rb
|
218
|
-
- lib/capistrano/env/formatter/dotenv_formatter.rb
|
219
|
-
- lib/capistrano/env/v2.rb
|
220
|
-
- lib/capistrano/env/v2/plugin.rb
|
221
|
-
- lib/capistrano/env/v3.rb
|
222
|
-
- lib/capistrano/env/v3/tasks/env.rake
|
223
216
|
- lib/capistrano/env/version.rb
|
217
|
+
- lib/capistrano/tasks/env.rake
|
218
|
+
- spec/capistrano/env/builder_spec.rb
|
224
219
|
- spec/capistrano/env/config_spec.rb
|
225
|
-
- spec/capistrano/env/formatter/dotenv_formatter_spec.rb
|
226
|
-
- spec/capistrano/env/v2/plugin_spec.rb
|
227
|
-
- spec/capistrano/env_spec.rb
|
228
220
|
- spec/gem_helper.rb
|
229
221
|
- spec/spec_helper.rb
|
230
222
|
homepage: https://github.com/masarakki/capistrano-env
|
231
223
|
licenses:
|
232
224
|
- MIT
|
233
225
|
metadata: {}
|
234
|
-
post_install_message:
|
226
|
+
post_install_message:
|
235
227
|
rdoc_options: []
|
236
228
|
require_paths:
|
237
229
|
- lib
|
@@ -247,14 +239,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
239
|
version: '0'
|
248
240
|
requirements: []
|
249
241
|
rubyforge_project:
|
250
|
-
rubygems_version: 2.
|
242
|
+
rubygems_version: 2.7.6
|
251
243
|
signing_key:
|
252
244
|
specification_version: 4
|
253
245
|
summary: capistrano with environments
|
254
246
|
test_files:
|
247
|
+
- spec/capistrano/env/builder_spec.rb
|
255
248
|
- spec/capistrano/env/config_spec.rb
|
256
|
-
- spec/capistrano/env/formatter/dotenv_formatter_spec.rb
|
257
|
-
- spec/capistrano/env/v2/plugin_spec.rb
|
258
|
-
- spec/capistrano/env_spec.rb
|
259
249
|
- spec/gem_helper.rb
|
260
250
|
- spec/spec_helper.rb
|
data/gemfiles/cap2.gemfile
DELETED
data/gemfiles/cap3.gemfile
DELETED
data/lib/capistrano/env/v2.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'capistrano'
|
2
|
-
|
3
|
-
module Capistrano
|
4
|
-
module Env
|
5
|
-
module Plugin
|
6
|
-
def use
|
7
|
-
config = Capistrano::Env::Config.new
|
8
|
-
yield(config)
|
9
|
-
add config
|
10
|
-
set :default_environment, config.envs
|
11
|
-
config
|
12
|
-
end
|
13
|
-
|
14
|
-
def add(config)
|
15
|
-
namespace :deploy do
|
16
|
-
namespace :capenv do
|
17
|
-
namespace :copy do
|
18
|
-
[:release, :current].each do |type|
|
19
|
-
task type do
|
20
|
-
path = fetch "#{type}_path".to_sym
|
21
|
-
parent.parent.parent.upload StringIO.new(config.capenv_content), "#{path}/#{config.capenv_file}"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
before 'deploy:finalize_update', 'deploy:capenv:copy:release'
|
28
|
-
before 'deploy:restart', 'deploy:capenv:copy:current'
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
Capistrano.plugin :capenv, Capistrano::Env::Plugin if Capistrano.respond_to?(:plugin)
|
data/lib/capistrano/env/v3.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
namespace :capenv do
|
2
|
-
desc 'copy .env to release_path'
|
3
|
-
task :copy do
|
4
|
-
on roles(:all) do
|
5
|
-
upload! StringIO.new(Capistrano::Env.to_s), "#{release_path}/#{Capistrano::Env.filename}", mode: Capistrano::Env.filemode
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
task :set_envs do
|
10
|
-
set :default_environment, Capistrano::Env.envs
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
stages.each do |stage|
|
15
|
-
after stage, 'capenv:set_envs'
|
16
|
-
end
|
17
|
-
|
18
|
-
before 'deploy:updated', 'capenv:copy'
|
19
|
-
before 'deploy:restart', 'capenv:copy'
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'gem_helper'
|
2
|
-
require 'capistrano/env/formatter/dotenv_formatter'
|
3
|
-
|
4
|
-
describe Capistrano::Env::Formatter::DotenvFormatter do
|
5
|
-
let(:envs) { { 'HELLO' => 'WORLD', 'HOGE' => '1,2,3' } }
|
6
|
-
expect_string = <<EOF
|
7
|
-
HELLO="WORLD"
|
8
|
-
HOGE="1,2,3"
|
9
|
-
EOF
|
10
|
-
it { expect(described_class.format(envs)).to eq expect_string }
|
11
|
-
it { expect(described_class.filename).to eq '.env' }
|
12
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'gem_helper'
|
2
|
-
require 'capistrano/env/v2'
|
3
|
-
|
4
|
-
describe Capistrano::Env::Plugin do
|
5
|
-
before do
|
6
|
-
skip 'capistrano-3.x not support it' unless Capistrano.respond_to?(:plugin)
|
7
|
-
end
|
8
|
-
let(:capistrano) { Capistrano::Configuration.new }
|
9
|
-
|
10
|
-
describe '#capenv' do
|
11
|
-
let(:setup) { capistrano.capenv.use { |config| config.add 'HELLO', 'WORLD' } }
|
12
|
-
|
13
|
-
it 'add task' do
|
14
|
-
expect(capistrano.capenv).to receive(:add)
|
15
|
-
setup
|
16
|
-
end
|
17
|
-
it { expect(setup).to be_a Capistrano::Env::Config }
|
18
|
-
|
19
|
-
it 'set default_environment' do
|
20
|
-
setup
|
21
|
-
expect(capistrano.fetch(:default_environment)).to eq 'HELLO' => 'WORLD'
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
data/spec/capistrano/env_spec.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require 'gem_helper'
|
2
|
-
require 'capistrano/env'
|
3
|
-
|
4
|
-
describe Capistrano::Env do
|
5
|
-
before do
|
6
|
-
Capistrano::Env.use do |env|
|
7
|
-
env.add 'HELLO', 'WORLD'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
it { expect(Capistrano::Env.to_s.chomp).to eq 'HELLO="WORLD"' }
|
12
|
-
it { expect(Capistrano::Env.envs).to eq 'HELLO' => 'WORLD' }
|
13
|
-
it { expect(Capistrano::Env.filename).to eq '.env' }
|
14
|
-
end
|