capistrano-env 0.3.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Coverage Status](https://img.shields.io/coveralls/masarakki/capistrano-env.svg)](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
|