capistrano-file-transfer-ext 0.0.3 → 0.0.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.
data/README.md
CHANGED
@@ -22,10 +22,74 @@ Add `require` line in your `Capfile` or `config/deploy.rb` or so.
|
|
22
22
|
|
23
23
|
require "capistrano/configuration/actions/file_transfer_ext"
|
24
24
|
|
25
|
-
|
25
|
+
Now you can use them in your tasks.
|
26
|
+
|
27
|
+
* `safe_upload` - Transfers a file from the local host to multiple remote hosts. ([more...](#safe_upload))
|
28
|
+
* `safe_put` - Store the contents of multiple servers. ([more...](#safe_put))
|
29
|
+
|
30
|
+
## Reference
|
31
|
+
|
32
|
+
### `safe_upload`
|
33
|
+
|
34
|
+
**Definition**
|
35
|
+
|
36
|
+
safe_upload(from, to, options={}, &block)
|
37
|
+
|
38
|
+
**Module**
|
39
|
+
|
40
|
+
Capistrano::Configuration::Actions::FileTransferExt
|
41
|
+
|
42
|
+
The `safe_upload` acts like almost as same as `upload`, but with some little enhancements.
|
43
|
+
|
44
|
+
1. overwrite remote file only if transmission has been successfully completed.
|
45
|
+
2. (if you request) overwrite remote file only if the checksums are different.
|
46
|
+
|
47
|
+
#### Arguments
|
48
|
+
|
49
|
+
**from**
|
50
|
+
|
51
|
+
Thie may be either a String, or an IO object (e.g. an open file handle, or a StringIO instance).
|
52
|
+
|
53
|
+
**to**
|
54
|
+
|
55
|
+
This must be a string indicating the path on the remote server that should be uploaded to.
|
56
|
+
|
57
|
+
**options**
|
58
|
+
|
59
|
+
All of the options of `upload` are sensible. In addition, there are some extra options.
|
60
|
+
|
61
|
+
* `:install` It must be either `:always` (the default), or `:if_modified`. If `:if_modified` is given, install the file only if the checksums are different.
|
62
|
+
* `:digest` Thi is a symbol indicating which algorithm should be used to calculate the checksum of files. `:md5` is default.
|
63
|
+
* `:digest_cmd` The command to calculate checksum of files. `md5sum` is default.
|
64
|
+
* `:sudo` It must be a boolean. If set true, use `sudo` on placing files. `false` by default.
|
65
|
+
|
66
|
+
|
67
|
+
### `safe_put`
|
68
|
+
|
69
|
+
**Definition**
|
70
|
+
|
71
|
+
safe_put(data, to, options={})
|
72
|
+
|
73
|
+
**Module**
|
74
|
+
|
75
|
+
Capistrano::Configuration::Actions::FileTransferExt
|
76
|
+
|
77
|
+
The `safe_put` action is `safe_upload`'s little brother.
|
78
|
+
|
79
|
+
#### Arguments
|
80
|
+
|
81
|
+
**data**
|
82
|
+
|
83
|
+
This is a string containing the contents of the file you want to upload.
|
84
|
+
|
85
|
+
**to**
|
86
|
+
|
87
|
+
This is a string naming the file on the remote server(s) that should be created (or overwritten) with the given data.
|
88
|
+
|
89
|
+
**options**
|
90
|
+
|
91
|
+
All of the options of `safe_upload` are sensible.
|
26
92
|
|
27
|
-
* `safe_put` - Store the contents of multiple servers, with comparing the difference of the contents.
|
28
|
-
* `safe_upload` - Transfers a file from the local host to multiple remote hosts, with comparing the difference of the contents.
|
29
93
|
|
30
94
|
## Contributing
|
31
95
|
|
@@ -20,7 +20,7 @@ module Capistrano
|
|
20
20
|
}
|
21
21
|
}
|
22
22
|
}
|
23
|
-
|
23
|
+
}.gsub(/\s+/, "").strip
|
24
24
|
|
25
25
|
def safe_put(data, path, options={})
|
26
26
|
opts = options.dup
|
@@ -33,18 +33,23 @@ module Capistrano
|
|
33
33
|
# The +options+ hash may include any of the following keys:
|
34
34
|
#
|
35
35
|
# * :transfer - use transfer_if_modified if :if_modified is set
|
36
|
-
# * :
|
36
|
+
# * :install - use install_if_modified if :if_modified is set
|
37
37
|
# * :run_method - the default is :run.
|
38
38
|
def safe_upload(from, to, options={}, &block)
|
39
39
|
transfer_method = options.delete(:transfer) == :if_modified ? :transfer_if_modified : :transfer
|
40
|
-
|
40
|
+
if options.has_key?(:install)
|
41
|
+
install_method = options.delete(:install) == :if_modified ? :install_if_modified : :install
|
42
|
+
else
|
43
|
+
# for backward compatibility before v0.0.4.
|
44
|
+
install_method = options.delete(:place) == :if_modified ? :install_if_modified : :install
|
45
|
+
end
|
41
46
|
run_method = ( options.delete(:run_method) || :run )
|
42
47
|
begin
|
43
48
|
tempname = File.join("/tmp", File.basename(to) + ".XXXXXXXXXX")
|
44
49
|
tempfile = capture("mktemp #{tempname.dump}").strip
|
45
50
|
run("rm -f #{tempfile.dump}", options)
|
46
51
|
send(transfer_method, :up, from, tempfile, options, &block)
|
47
|
-
send(
|
52
|
+
send(install_method, tempfile, to, options.merge(:via => run_method), &block)
|
48
53
|
ensure
|
49
54
|
run("rm -f #{tempfile.dump}", options) rescue nil
|
50
55
|
end
|
@@ -92,14 +97,14 @@ module Capistrano
|
|
92
97
|
end
|
93
98
|
end
|
94
99
|
|
95
|
-
#
|
100
|
+
# install a file on remote.
|
96
101
|
#
|
97
102
|
# The +options+ hash may include any of the following keys:
|
98
103
|
#
|
99
104
|
# * :mode - permission of the file.
|
100
105
|
# * :sudo - use sudo if set true. the default is false.
|
101
106
|
#
|
102
|
-
def
|
107
|
+
def install(from, to, options={}, &block)
|
103
108
|
mode = options.delete(:mode)
|
104
109
|
try_sudo = options.delete(:sudo) ? sudo : ""
|
105
110
|
execute = []
|
@@ -111,8 +116,9 @@ module Capistrano
|
|
111
116
|
end
|
112
117
|
invoke_command(execute.join(" && "), options)
|
113
118
|
end
|
119
|
+
alias place install
|
114
120
|
|
115
|
-
#
|
121
|
+
# install a file on remote, only if the destination is differ from source.
|
116
122
|
#
|
117
123
|
# The +options+ hash may include any of the following keys:
|
118
124
|
#
|
@@ -121,7 +127,7 @@ module Capistrano
|
|
121
127
|
# * :digest - digest algorithm. the default is "md5".
|
122
128
|
# * :digest_cmd - the digest command. the default is "#{digest}sum".
|
123
129
|
#
|
124
|
-
def
|
130
|
+
def install_if_modified(from, to, options={}, &block)
|
125
131
|
mode = options.delete(:mode)
|
126
132
|
try_sudo = options.delete(:sudo) ? sudo : ""
|
127
133
|
digest_method = options.fetch(:digest, "md5")
|
@@ -149,6 +155,7 @@ module Capistrano
|
|
149
155
|
end
|
150
156
|
invoke_command(execute.join(" && "), options)
|
151
157
|
end
|
158
|
+
alias place_if_modified install_if_modified
|
152
159
|
end
|
153
160
|
end
|
154
161
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-file-transfer-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|