joekhoobyar-capistrano-extensions 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :patch: 1
2
+ :patch: 2
3
3
  :major: 0
4
4
  :minor: 0
@@ -28,9 +28,20 @@ module CapistranoExtensions
28
28
  compare_file compare_stream
29
29
  uptodate?)
30
30
 
31
- class_eval(%w(exists? directory? executable?).map do |m|
32
- "def #{m}(f) File.#{m}(f) end"
33
- end.join("\n"))
31
+ def exists?(a, options={})
32
+ $stdout.puts "[ -f #{_q a} ] ]"
33
+ File.exists? a
34
+ end
35
+
36
+ def directory?(a, options={})
37
+ $stdout.puts "[ -d #{_q a} ]"
38
+ File.directory? a
39
+ end
40
+
41
+ def executable?(a, options={})
42
+ $stdout.puts "[ -x #{_q a} ]"
43
+ File.executable? a
44
+ end
34
45
 
35
46
  end
36
47
  end
@@ -12,11 +12,11 @@ module CapistranoExtensions
12
12
  end
13
13
 
14
14
  def upload(*args)
15
- _via == :system ? cp(*args) : @config.upload(*args.push(:via => _via))
15
+ _via == :system ? cp(*args) : @config.upload(*args)
16
16
  end
17
17
 
18
18
  def download(*args)
19
- _via == :system ? cp(*args) : @config.download(*args.push(:via => _via))
19
+ _via == :system ? cp(*args) : @config.download(*args)
20
20
  end
21
21
 
22
22
  def cd(dir, options={})
@@ -122,30 +122,41 @@ module CapistranoExtensions
122
122
  _r 'touch', args
123
123
  end
124
124
 
125
- def exists?(a, options={:verbose=>false})
126
- silence!(options) { _r "[ -f #{_q a} ]" }
125
+ def exists?(a)
126
+ _t "test -f", a
127
127
  end
128
128
 
129
129
  def directory?(a, options={:verbose=>false})
130
- silence!(options) { _r "[ -d #{_q a} ]" }
130
+ _t "test -d", a
131
131
  end
132
132
 
133
133
  def executable?(a, options={:verbose=>false})
134
- silence!(options) { _r "[ -x #{_q a} ]" }
134
+ _t "test -x", a
135
135
  end
136
136
 
137
137
 
138
138
  private
139
139
 
140
- def silence!(quiet=false)
141
- quiet = (FalseClass===quiet[:verbose]) if Hash === quiet
142
- orig_quiet, @quiet = @quiet, quiet
143
- yield
144
- ensure
145
- @quiet = orig_quiet
140
+ def _t(cmd, args=nil, min=nil)
141
+ cmd = _a cmd, args, min
142
+ if _via == :system then
143
+ system(cmd)
144
+ else
145
+ capture("#{cmd}; echo $?", :via => _via).strip == '0'
146
+ end
146
147
  end
147
148
 
148
149
  def _r(cmd, args=nil, min=nil)
150
+ cmd = _a cmd, args, min
151
+ if _via != :system then
152
+ invoke_command(cmd, :via => _via)
153
+ else
154
+ $stdout.puts cmd
155
+ system cmd
156
+ end
157
+ end
158
+
159
+ def _a(cmd, args=nil, min=nil)
149
160
  case args
150
161
  when NilClass
151
162
  raise ArgumentError unless min.nil? or min.zero?
@@ -154,17 +165,9 @@ module CapistranoExtensions
154
165
  raise ArgumentError if (min || 1) > args.length
155
166
  cmd = "#{cmd} #{_q(*args)}" if args.any?
156
167
  else
157
- raise ArgumentError if min.nil? or min < 1
168
+ raise ArgumentError if min and min < 1
158
169
  cmd = "#{cmd} #{_q args}"
159
170
  end
160
-
161
- case (v = _via)
162
- when :system
163
- @quiet or $stderr.puts cmd
164
- system cmd
165
- else
166
- invoke_command cmd, :via => v
167
- end
168
171
  end
169
172
 
170
173
  def _q(*list)
@@ -15,7 +15,9 @@ module CapistranoExtension
15
15
  def sudo_su_to(*args, &block)
16
16
  options = Hash===args.last ? args.pop.dup : {}
17
17
  options[:shell] = false
18
- args[0] = "echo \"#{args[0].gsub('"', '\\"')}\" | #{sudo} su - #{fetch(:runner, nil)}"
18
+ cmd = args[0].gsub(/[$\\`"]/) { |m| "\\#{m}" }
19
+ args[0] = "echo \"#{cmd}\" | #{sudo} su - #{fetch(:runner, nil)}"
20
+ #args[0] = "echo \"#{.gsub('"', '\\"')}\" | #{sudo} su - #{fetch(:runner, nil)}"
19
21
  run *args.push(options), &block
20
22
  end
21
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: joekhoobyar-capistrano-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Khoobyar