rake-remote_task 2.0.6 → 2.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.
- data.tar.gz.sig +0 -0
- data/History.txt +15 -0
- data/Rakefile +1 -1
- data/lib/rake/remote_task.rb +63 -7
- metadata +21 -14
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 2.1.0 / 2012-11-23
|
2
|
+
|
3
|
+
* 4 minor enhancements:
|
4
|
+
|
5
|
+
* Allow a set of preliminary commands that will always be run
|
6
|
+
* Allow the manipultation of array variable in which one can append values
|
7
|
+
* Trust remote umask by default
|
8
|
+
* Updated rake dep to be >= 0.8 and < 11.0 for the new wack version scheme. (MichaelXavier)
|
9
|
+
|
10
|
+
* 3 bug fixes:
|
11
|
+
|
12
|
+
* Add documentation for +command_prefix+ in +run+
|
13
|
+
* Declare append as an operation of Rake:RemoteTask. Fix 7863.
|
14
|
+
* Fix misc coding style
|
15
|
+
|
1
16
|
=== 2.0.6 / 2012-01-04
|
2
17
|
|
3
18
|
* 1 minor enhancement:
|
data/Rakefile
CHANGED
data/lib/rake/remote_task.rb
CHANGED
@@ -8,7 +8,7 @@ $-w = true if $TRACE # asshat, don't mess with my warn.
|
|
8
8
|
|
9
9
|
[
|
10
10
|
["Thread.current[:task]", :get, :put, :rsync, :run, :sudo, :target_host],
|
11
|
-
["Rake::RemoteTask", :host, :remote_task, :role, :set]
|
11
|
+
["Rake::RemoteTask", :host, :remote_task, :role, :set, :append]
|
12
12
|
].each do |methods|
|
13
13
|
receiver = methods.shift
|
14
14
|
methods.each do |method|
|
@@ -45,7 +45,7 @@ end
|
|
45
45
|
|
46
46
|
class Rake::RemoteTask < Rake::Task
|
47
47
|
|
48
|
-
VERSION = "2.0
|
48
|
+
VERSION = "2.1.0"
|
49
49
|
|
50
50
|
@@current_roles = []
|
51
51
|
|
@@ -169,9 +169,19 @@ class Rake::RemoteTask < Rake::Task
|
|
169
169
|
##
|
170
170
|
# Use ssh to execute +command+ on target_host. If +command+ uses sudo, the
|
171
171
|
# sudo password will be prompted for then saved for subsequent sudo commands.
|
172
|
+
#
|
173
|
+
# If +command_prefix+ has been filled up with one or several commands, they
|
174
|
+
# will be run on target_host before +command+.
|
172
175
|
|
173
176
|
def run command
|
174
|
-
|
177
|
+
commands = []
|
178
|
+
|
179
|
+
commands << "cd #{target_dir}" if target_dir
|
180
|
+
commands += command_prefix.flatten if command_prefix
|
181
|
+
commands << "#{command}"
|
182
|
+
|
183
|
+
command = commands.join(" && ")
|
184
|
+
|
175
185
|
cmd = [ssh_cmd, ssh_flags, target_host, command].flatten
|
176
186
|
result = []
|
177
187
|
|
@@ -256,6 +266,10 @@ class Rake::RemoteTask < Rake::Task
|
|
256
266
|
@@env
|
257
267
|
end
|
258
268
|
|
269
|
+
def self.is_array
|
270
|
+
@@is_array
|
271
|
+
end
|
272
|
+
|
259
273
|
##
|
260
274
|
# Fetches environment variable +name+ from the environment using
|
261
275
|
# default +default+.
|
@@ -265,11 +279,21 @@ class Rake::RemoteTask < Rake::Task
|
|
265
279
|
if @@env.has_key? name then
|
266
280
|
protect_env(name) do
|
267
281
|
v = @@env[name]
|
268
|
-
|
269
|
-
|
282
|
+
if @@is_array[name] then
|
283
|
+
v = v.map do |item|
|
284
|
+
Proc === item ? item.call : item
|
285
|
+
end
|
286
|
+
unless per_thread[name] then
|
287
|
+
@@env[name] = v
|
288
|
+
@@is_array[name] = false
|
289
|
+
end
|
290
|
+
elsif Proc === v then
|
291
|
+
v = v.call
|
292
|
+
@@env[name] = v unless per_thread[name]
|
293
|
+
end
|
270
294
|
v
|
271
295
|
end
|
272
|
-
elsif default || default == false
|
296
|
+
elsif default || default == false then
|
273
297
|
v = @@env[name] = default
|
274
298
|
else
|
275
299
|
raise Rake::FetchError
|
@@ -349,6 +373,7 @@ class Rake::RemoteTask < Rake::Task
|
|
349
373
|
def self.reset
|
350
374
|
@@def_role_hash = {} # official default role value
|
351
375
|
@@env = {}
|
376
|
+
@@is_array = {}
|
352
377
|
@@tasks = {}
|
353
378
|
@@roles = Hash.new { |h,k| h[k] = @@def_role_hash }
|
354
379
|
@@env_locks = Hash.new { |h,k| h[k] = Mutex.new }
|
@@ -430,6 +455,35 @@ class Rake::RemoteTask < Rake::Task
|
|
430
455
|
end
|
431
456
|
end
|
432
457
|
|
458
|
+
##
|
459
|
+
# Append +value+ or +default_block+ to environment variable +name+
|
460
|
+
#
|
461
|
+
# To initialize an empty array, just do append +name+
|
462
|
+
#
|
463
|
+
# If +default_block+ is defined, the block will be executed the
|
464
|
+
# first time the variable is fetched, and the value will be used for
|
465
|
+
# every subsequent fetch.
|
466
|
+
|
467
|
+
def self.append name, value = nil, &default_block
|
468
|
+
raise ArgumentError, "cannot provide both a value and a block" if
|
469
|
+
value and default_block unless
|
470
|
+
value == :per_thread
|
471
|
+
raise ArgumentError, "cannot set reserved name: '#{name}'" if
|
472
|
+
Rake::RemoteTask.reserved_name?(name) unless $TESTING
|
473
|
+
|
474
|
+
name = name.to_s
|
475
|
+
|
476
|
+
set(name, []) unless @@is_array[name]
|
477
|
+
Rake::RemoteTask.is_array[name] = true
|
478
|
+
Rake::RemoteTask.per_thread[name] ||= default_block && value == :per_thread
|
479
|
+
|
480
|
+
v = default_block || value
|
481
|
+
if v then
|
482
|
+
Rake::RemoteTask.default_env[name] << v
|
483
|
+
Rake::RemoteTask.env[name] << v
|
484
|
+
end
|
485
|
+
end
|
486
|
+
|
433
487
|
##
|
434
488
|
# Sets all the default values. Should only be called once. Use reset
|
435
489
|
# if you need to restore values.
|
@@ -455,12 +509,14 @@ class Rake::RemoteTask < Rake::Task
|
|
455
509
|
:sudo_cmd, "sudo",
|
456
510
|
:sudo_flags, ['-p Password:'],
|
457
511
|
:sudo_prompt, /^Password:/,
|
458
|
-
:umask,
|
512
|
+
:umask, nil,
|
459
513
|
:mkdirs, [],
|
460
514
|
:shared_paths, {},
|
461
515
|
:perm_owner, nil,
|
462
516
|
:perm_group, nil)
|
463
517
|
|
518
|
+
append :command_prefix, []
|
519
|
+
|
464
520
|
set(:current_release) { File.join(releases_path, releases[-1]) }
|
465
521
|
set(:latest_release) {
|
466
522
|
deploy_timestamped ? release_path : current_release
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-remote_task
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 2.0.6
|
10
|
+
version: 2.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -38,7 +38,7 @@ cert_chain:
|
|
38
38
|
FBHgymkyj/AOSqKRIpXPhjC6
|
39
39
|
-----END CERTIFICATE-----
|
40
40
|
|
41
|
-
date: 2012-
|
41
|
+
date: 2012-11-23 00:00:00 Z
|
42
42
|
dependencies:
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rake
|
@@ -46,13 +46,20 @@ dependencies:
|
|
46
46
|
requirement: &id001 !ruby/object:Gem::Requirement
|
47
47
|
none: false
|
48
48
|
requirements:
|
49
|
-
- -
|
49
|
+
- - ">="
|
50
50
|
- !ruby/object:Gem::Version
|
51
51
|
hash: 27
|
52
52
|
segments:
|
53
53
|
- 0
|
54
54
|
- 8
|
55
55
|
version: "0.8"
|
56
|
+
- - <
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 39
|
59
|
+
segments:
|
60
|
+
- 11
|
61
|
+
- 0
|
62
|
+
version: "11.0"
|
56
63
|
type: :runtime
|
57
64
|
version_requirements: *id001
|
58
65
|
- !ruby/object:Gem::Dependency
|
@@ -78,11 +85,11 @@ dependencies:
|
|
78
85
|
requirements:
|
79
86
|
- - ~>
|
80
87
|
- !ruby/object:Gem::Version
|
81
|
-
hash:
|
88
|
+
hash: 29
|
82
89
|
segments:
|
83
|
-
-
|
84
|
-
-
|
85
|
-
version: "
|
90
|
+
- 4
|
91
|
+
- 3
|
92
|
+
version: "4.3"
|
86
93
|
type: :development
|
87
94
|
version_requirements: *id003
|
88
95
|
- !ruby/object:Gem::Dependency
|
@@ -108,11 +115,11 @@ dependencies:
|
|
108
115
|
requirements:
|
109
116
|
- - ~>
|
110
117
|
- !ruby/object:Gem::Version
|
111
|
-
hash:
|
118
|
+
hash: 1
|
112
119
|
segments:
|
113
|
-
-
|
114
|
-
-
|
115
|
-
version: "
|
120
|
+
- 3
|
121
|
+
- 3
|
122
|
+
version: "3.3"
|
116
123
|
type: :development
|
117
124
|
version_requirements: *id005
|
118
125
|
description: |-
|
@@ -170,7 +177,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
177
|
requirements: []
|
171
178
|
|
172
179
|
rubyforge_project: hitsquad
|
173
|
-
rubygems_version: 1.8.
|
180
|
+
rubygems_version: 1.8.24
|
174
181
|
signing_key:
|
175
182
|
specification_version: 3
|
176
183
|
summary: Vlad the Deployer's sexy brainchild is rake-remote_task, extending Rake with remote task goodness.
|
metadata.gz.sig
CHANGED
Binary file
|