capifig 0.0.2 → 0.1.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 +7 -0
- data/.gitignore +0 -1
- data/.travis.yml +2 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +45 -0
- data/README.md +10 -10
- data/lib/capifig/capistrano3.rb +3 -0
- data/lib/capifig/tasks/capifig.rake +34 -0
- data/lib/capifig/version.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- metadata +14 -16
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 05d77fa82646a8d2a2ae53b5d61979631e99af3b
|
4
|
+
data.tar.gz: a0b880dad3d951bfb657605075fbedfd44f21118
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 45420dd9d284acd5913afb3252ba01844ed01c6164d63a4496cf580929309091bb15bf98c526bf2171b23e4baa834ea17ecb6d5dc0ea3e32cd3300ae0bfba82c
|
7
|
+
data.tar.gz: ec243a230a3f4e5f4cca664f0a03c959692371a6e821133ddfe7011e5e72135d0e34668403b47d1e07e57950e3559076d3a1844aab1e7217470699a8b113b86e
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
capifig (0.0.2)
|
5
|
+
capistrano (>= 2.0.0)
|
6
|
+
|
7
|
+
GEM
|
8
|
+
remote: https://rubygems.org/
|
9
|
+
specs:
|
10
|
+
capistrano (2.15.5)
|
11
|
+
highline
|
12
|
+
net-scp (>= 1.0.0)
|
13
|
+
net-sftp (>= 2.0.0)
|
14
|
+
net-ssh (>= 2.0.14)
|
15
|
+
net-ssh-gateway (>= 1.1.0)
|
16
|
+
diff-lcs (1.2.5)
|
17
|
+
highline (1.7.2)
|
18
|
+
net-scp (1.2.1)
|
19
|
+
net-ssh (>= 2.6.5)
|
20
|
+
net-sftp (2.1.2)
|
21
|
+
net-ssh (>= 2.6.5)
|
22
|
+
net-ssh (2.9.2)
|
23
|
+
net-ssh-gateway (1.2.0)
|
24
|
+
net-ssh (>= 2.6.5)
|
25
|
+
rspec (3.3.0)
|
26
|
+
rspec-core (~> 3.3.0)
|
27
|
+
rspec-expectations (~> 3.3.0)
|
28
|
+
rspec-mocks (~> 3.3.0)
|
29
|
+
rspec-core (3.3.0)
|
30
|
+
rspec-support (~> 3.3.0)
|
31
|
+
rspec-expectations (3.3.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.3.0)
|
34
|
+
rspec-mocks (3.3.0)
|
35
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
36
|
+
rspec-support (~> 3.3.0)
|
37
|
+
rspec-support (3.3.0)
|
38
|
+
|
39
|
+
PLATFORMS
|
40
|
+
ruby
|
41
|
+
|
42
|
+
DEPENDENCIES
|
43
|
+
capifig!
|
44
|
+
capistrano (~> 2.15)
|
45
|
+
rspec
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Deploy different configuration per stage with Capistrano (with the multi-stage extension).
|
4
4
|
|
5
|
-
The 0.
|
5
|
+
The 0.x releases of this gem are unstable, and the API/usage may change significantly, even in minor version
|
6
6
|
increments.
|
7
7
|
|
8
8
|
## Installation
|
@@ -11,21 +11,21 @@ Add this line to your application's Gemfile:
|
|
11
11
|
|
12
12
|
gem 'capifig'
|
13
13
|
|
14
|
-
|
14
|
+
### Capistrano 3
|
15
|
+
|
16
|
+
Add the following line to your Capistrano `config/deploy.rb`:
|
15
17
|
|
16
18
|
require 'capifig/capistrano'
|
17
19
|
|
20
|
+
### Capistrano 2
|
21
|
+
|
22
|
+
Add the following line to your Capistrano Capfile:
|
23
|
+
|
24
|
+
require 'capifig/capistrano3'
|
25
|
+
|
18
26
|
## Usage
|
19
27
|
|
20
28
|
For each stage, create a folder in `config/deploy/<stage>`, containing all the config files specific to that
|
21
29
|
stage. On deployment (after deploy:update_code), these files will be copied to your app's root. Subfolders may be used,
|
22
30
|
but must already exist on the server. For example, if you have a folder `config/deploy/production/dbconfig`, you
|
23
31
|
also need a folder `dbconfig` in the root of your app.
|
24
|
-
|
25
|
-
## Contributing
|
26
|
-
|
27
|
-
1. Fork it
|
28
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
29
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
30
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
31
|
-
5. Create new Pull Request
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
namespace :capifig do
|
3
|
+
def remote_path(release_path, config_path, file)
|
4
|
+
path = Pathname.new(release_path) + relative_path(config_path, file)
|
5
|
+
path.to_s
|
6
|
+
end
|
7
|
+
|
8
|
+
# Given a local path, returns the relative path to the file
|
9
|
+
def relative_path(config_path, file)
|
10
|
+
path = Pathname.new(file).relative_path_from(Pathname.new(config_path)).to_s
|
11
|
+
# For security reasons, we check that the path does not contain any ..'s
|
12
|
+
raise ArgumentError, "File '#{file}' is not in '#{config_path}'" if path.include? '..'
|
13
|
+
path
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
desc <<-DESC
|
18
|
+
Deploy configuration files.
|
19
|
+
DESC
|
20
|
+
task :deploy do
|
21
|
+
on roles(:app) do
|
22
|
+
stage = fetch(:stage, 'production')
|
23
|
+
config_path = fetch(:config_path, "config/deploy/#{stage}")
|
24
|
+
files = `git ls-files #{config_path}`.split($/)
|
25
|
+
files.sort!
|
26
|
+
files.each do |f|
|
27
|
+
info "Uploading #{f}"
|
28
|
+
upload! f, remote_path(release_path, config_path, f)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
before 'deploy:updated', 'capifig:deploy'
|
34
|
+
end
|
data/lib/capifig/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capifig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ralf Kistner
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-06-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: capistrano
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 2.0.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: 2.0.0
|
30
27
|
description: Deploy different configuration per stage with Capistrano (with the multi-stage
|
@@ -35,16 +32,19 @@ executables: []
|
|
35
32
|
extensions: []
|
36
33
|
extra_rdoc_files: []
|
37
34
|
files:
|
38
|
-
- .gitignore
|
39
|
-
- .travis.yml
|
35
|
+
- ".gitignore"
|
36
|
+
- ".travis.yml"
|
40
37
|
- Gemfile
|
38
|
+
- Gemfile.lock
|
41
39
|
- LICENSE.txt
|
42
40
|
- README.md
|
43
41
|
- Rakefile
|
44
42
|
- capifig.gemspec
|
45
43
|
- lib/capifig.rb
|
46
44
|
- lib/capifig/capistrano.rb
|
45
|
+
- lib/capifig/capistrano3.rb
|
47
46
|
- lib/capifig/configuration.rb
|
47
|
+
- lib/capifig/tasks/capifig.rake
|
48
48
|
- lib/capifig/version.rb
|
49
49
|
- sample/.env
|
50
50
|
- sample/Procfile
|
@@ -54,30 +54,28 @@ files:
|
|
54
54
|
- spec/spec_helper.rb
|
55
55
|
homepage: ''
|
56
56
|
licenses: []
|
57
|
+
metadata: {}
|
57
58
|
post_install_message:
|
58
59
|
rdoc_options: []
|
59
60
|
require_paths:
|
60
61
|
- lib
|
61
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
63
|
requirements:
|
64
|
-
- -
|
64
|
+
- - ">="
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '0'
|
67
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
68
|
requirements:
|
70
|
-
- -
|
69
|
+
- - ">="
|
71
70
|
- !ruby/object:Gem::Version
|
72
71
|
version: '0'
|
73
72
|
requirements: []
|
74
73
|
rubyforge_project:
|
75
|
-
rubygems_version:
|
74
|
+
rubygems_version: 2.2.2
|
76
75
|
signing_key:
|
77
|
-
specification_version:
|
76
|
+
specification_version: 4
|
78
77
|
summary: Deploy different configuration per stage with Capistrano.
|
79
78
|
test_files:
|
80
79
|
- spec/capistrano_spec.rb
|
81
80
|
- spec/configuration_spec.rb
|
82
81
|
- spec/spec_helper.rb
|
83
|
-
has_rdoc:
|