capistrano3-copy 0.0.1
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 +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +42 -0
- data/Rakefile +2 -0
- data/capistrano3-copy.gemspec +24 -0
- data/lib/capistrano/copy/version.rb +5 -0
- data/lib/capistrano/copy.rb +2 -0
- data/lib/capistrano/tasks/copy.rake +66 -0
- metadata +97 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ab40d5bef2f74220344c29083f0f3e3a151658ba
|
4
|
+
data.tar.gz: cd676bed9dec87b76786afb3666dd37c93fd8559
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 72b714864866adac55084e16a351177133d1521ebd57d5f693d0becf0ff25003c9cde56220804d191046ba37e668252b0757ef10f5248441578bc2194d115e31
|
7
|
+
data.tar.gz: 41dd2932ef19a924044ee8c790f7ec22e3769831d54312031549b19ef3a1ccff4042ff4079da46420ae04a0dec54da9437e58d29ca203091d366153fff50ca54
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Jordi Polo
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Capistrano3::Copy
|
2
|
+
|
3
|
+
A very simple gem providing a copy strategy for Capistrano3
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'capistrano3-copy'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
In your config/deploy.rb file change your strategy to copy with this line:
|
18
|
+
|
19
|
+
set :scm, 'copy'
|
20
|
+
|
21
|
+
That's it!
|
22
|
+
Next time you deploy, you will create a zip file, copy it over and
|
23
|
+
unpack it in your server.
|
24
|
+
|
25
|
+
By default the zip file is created and left in release.zip in the same
|
26
|
+
directory of your project, if you would like to use a different
|
27
|
+
location, you can overwrite the default with:
|
28
|
+
|
29
|
+
set :copy_local_file, '/tmp/out_of_sight'
|
30
|
+
|
31
|
+
By default all files but files in the log/ directory are copied over, if
|
32
|
+
you want to change that, you can define any reg expresion with the files
|
33
|
+
you want to exclude with:
|
34
|
+
set :copy_exclude, /\.log$/
|
35
|
+
|
36
|
+
## Contributing
|
37
|
+
|
38
|
+
1. Fork it ( https://github.com/[my-github-username]/capistrano3-copy/fork )
|
39
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
40
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
41
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
42
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'capistrano/copy/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "capistrano3-copy"
|
8
|
+
spec.version = Capistrano3::Copy::VERSION
|
9
|
+
spec.authors = ["Jordi Polo"]
|
10
|
+
spec.email = ["mumismo@gmail.com"]
|
11
|
+
spec.summary = %q{A simple gem providing a copy strategy for Capistrano3}
|
12
|
+
spec.description = %q{Copy strategy for Capistrano3. It creates and local zip file, uploads and unpacks it in the server.}
|
13
|
+
spec.homepage = "https://github.com/Railsmania/capistrano3-copy"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency 'rubyzip', "~> 1.1"
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
23
|
+
spec.add_development_dependency "rake"
|
24
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'zip'
|
2
|
+
require 'tempfile'
|
3
|
+
|
4
|
+
Zip.setup do |c|
|
5
|
+
c.unicode_names = true
|
6
|
+
c.on_exists_proc = true
|
7
|
+
c.continue_on_exists_proc = true
|
8
|
+
end
|
9
|
+
|
10
|
+
TMP_COPY_DIR = '/tmp'
|
11
|
+
FILENAME = 'release.zip'
|
12
|
+
|
13
|
+
namespace :copy do
|
14
|
+
|
15
|
+
# The name of the file we create locally prior to send it to the server.
|
16
|
+
def release_local_file
|
17
|
+
@release_local_file ||= fetch(:copy_local_file) || FILENAME
|
18
|
+
end
|
19
|
+
|
20
|
+
# All the project files we are gonna pack and send to the server.
|
21
|
+
def all_project_files
|
22
|
+
exclusions = fetch(:copy_exclude) || /\.log$/
|
23
|
+
files = FileList['**/*']
|
24
|
+
files.exclude(*exclusions).each do |file|
|
25
|
+
yield file
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# check in each strategy is used to do checks on remote servers.
|
30
|
+
# We do not need to do anything for this strategy
|
31
|
+
task :check do
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
# called by Capistrano. Returns a string with current date and time
|
36
|
+
task :set_current_revision do
|
37
|
+
run_locally do
|
38
|
+
set :current_revision, Time.now.strftime("%Y%m%d%H%M%S")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# This is the entry point of a strategy for Capistrano, capistrano will call
|
43
|
+
# this task first
|
44
|
+
task :create_release do |t|
|
45
|
+
invoke 'copy:pack_release'
|
46
|
+
uploaded_file = "#{TMP_COPY_DIR}/release.zip"
|
47
|
+
on release_roles :all do
|
48
|
+
execute :mkdir, "-p", TMP_COPY_DIR
|
49
|
+
upload! release_local_file, TMP_COPY_DIR
|
50
|
+
execute :unzip, '-o', uploaded_file, '-d', release_path
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Task that gets all our software and pack it together
|
55
|
+
task :pack_release do
|
56
|
+
release_filename = release_local_file
|
57
|
+
Dir.chdir '.' do
|
58
|
+
Zip::File.open(release_local_file, Zip::File::CREATE) do |zipfile|
|
59
|
+
all_project_files do |file|
|
60
|
+
zipfile.add(file, file)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
metadata
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capistrano3-copy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jordi Polo
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rubyzip
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Copy strategy for Capistrano3. It creates and local zip file, uploads
|
56
|
+
and unpacks it in the server.
|
57
|
+
email:
|
58
|
+
- mumismo@gmail.com
|
59
|
+
executables: []
|
60
|
+
extensions: []
|
61
|
+
extra_rdoc_files: []
|
62
|
+
files:
|
63
|
+
- ".gitignore"
|
64
|
+
- Gemfile
|
65
|
+
- LICENSE.txt
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- capistrano3-copy.gemspec
|
69
|
+
- lib/capistrano/copy.rb
|
70
|
+
- lib/capistrano/copy/version.rb
|
71
|
+
- lib/capistrano/tasks/copy.rake
|
72
|
+
homepage: https://github.com/Railsmania/capistrano3-copy
|
73
|
+
licenses:
|
74
|
+
- MIT
|
75
|
+
metadata: {}
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 2.2.2
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: A simple gem providing a copy strategy for Capistrano3
|
96
|
+
test_files: []
|
97
|
+
has_rdoc:
|