thrush 0.0.2 → 0.0.3

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.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/thrush.rb +52 -13
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MWViNzg4YWFlOGEwYzUwZGU4YzY5YzAxZmU2ZGJhYmY2ZDQ5ZjgwMA==
4
+ ODIyMjFmYmU5MDYxNDI3N2M3MDMxNTdhYWI1MDllNDVmMTIxZDc2Yw==
5
5
  data.tar.gz: !binary |-
6
- ZjhjNTE2ZTJkMzZhZjU1NzgyZTc2Mjg5NzVjMDZiZDVlODcyMDA1MA==
6
+ NjU0OTQxNGQ4NjM1Zjk4NWRhNmYzZjIyZmZmMjMwYmY1MWE2OTJmYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmNjMTBhODJlZWNjZDVlZGRkODQ1OGQyMjMyNzRlY2Y4OGQyNzM4MGU5Mjk2
10
- ZGUzYjIyNGEwNTBmZWQ4ZTAzMTMwYWRhODJjYWU3YTU2MGJiOTI2NDRiNWVh
11
- ZTg0NDgzN2Q4Mzc5MGE3MmI1MGYwZmM5NGNkYjAxYzcxYjQ5NmM=
9
+ ZGRhNTE4YzA2ZDlmYWVhNjdhYzJlOWU1NjM5YzQ5OGFlYjU0MGM3OTljNWQ4
10
+ ODQzMjlkYzhhMjU1MDNjZmY0MDJiZjdjOGQyMzU4ZmU4ZDVjNTUzNDM2NDE2
11
+ ZWM5YzZkODAxMjcxNTM1OGE5NjQ1YzEwZGIwZmE0ZjNmMTQ1ZmM=
12
12
  data.tar.gz: !binary |-
13
- MzUyMmI5ZmIyZjU5Mjg3ZTA3YzM0MzYyZWY1NjI1ZThkMzhkYWM4N2VjMjk0
14
- ZWIxYzU5ZjdkOGQ3MzYyNjU4MGM0NTU3MzhkYjIwNWM3NjAzMzQxODc0ZDQ1
15
- Njc0ZWI2ZDk3MGFlZDAzMDhhY2UwZTBiODA0ZDZmZjc4OWE2YzE=
13
+ YTk2ZTNiNzBlOGYwNGM4YWIxZjVhZWFjOTk3MzQ1OGQ5NTEzZDY2YWYzNGQx
14
+ Zjg5MzZlZmQzNGRkMzA2ODY1MzAyYzdiOGEwMDEyODk5ODczZGY1N2I3Yzdi
15
+ YjA0NDdiZGJlYzY4NzUyODE4M2Y5MWJhMzg0ZDlhMDI5NWY4Y2Y=
@@ -75,6 +75,13 @@ def debug?
75
75
  flag? :debug
76
76
  end
77
77
 
78
+ def flag(key)
79
+ k = key.to_sym
80
+ if flag? k
81
+ @flags[k]
82
+ end
83
+ end
84
+
78
85
  # Defining commands
79
86
  @commands = []
80
87
 
@@ -129,7 +136,7 @@ def run!
129
136
  next unless found
130
137
  end
131
138
 
132
- sudo = cmd_vals(:sudo, cmd_values)
139
+ sudo = cmd_vals(:sudo, cmd_values)
133
140
  debug_command = ''
134
141
 
135
142
  case cmd_values[:type]
@@ -145,7 +152,13 @@ def run!
145
152
  end
146
153
  when :rsync
147
154
  debug = debug? ? 'n' : ''
148
- cmd = ["rsync -#{ debug }vazcO --no-o --no-g -e ssh --exclude '.git' --exclude '.idea' --exclude '.DS_Store'"]
155
+ # TODO: The default rsync values I've hardcoded including --no-o, --no-g and other defaults should be flags that someone can pass in.
156
+ cmd = ["rsync -#{ debug }vazcO --no-o --no-g"]
157
+
158
+ rsh = cmd_vals(:rsh, cmd_values)
159
+ cmd << "--rsh=#{ rsh }" unless rsh.nil?
160
+
161
+ cmd << "--exclude '.git' --exclude '.idea' --exclude '.DS_Store'"
149
162
 
150
163
  ignore = cmd_vals(:ignore, cmd_values)
151
164
  ignore.each { |exclude| cmd << "--exclude '#{ exclude }'" } unless ignore.nil? || ignore.empty?
@@ -156,7 +169,12 @@ def run!
156
169
  cmd << "--rsync-path='#{ path }'" unless path.nil? || path.empty?
157
170
 
158
171
  cmd << cmd_vals(:src, cmd_values)
159
- cmd << "#{ cmd_vals(:hostname, cmd_values) }:#{ cmd_vals(:dest, cmd_values) }"
172
+
173
+ if rsh == 'ssh'
174
+ cmd << "#{ cmd_vals(:hostname, cmd_values) }:#{ cmd_vals(:dest, cmd_values) }"
175
+ else
176
+ cmd << cmd_vals(:dest, cmd_values)
177
+ end
160
178
 
161
179
  command = cmd.join(' ')
162
180
  debug_command = command if debug?
@@ -190,21 +208,42 @@ def run!
190
208
  # break
191
209
  #end
192
210
 
193
- status = Open4::popen4('sh') do |pid, stdin, stdout, stderr|
194
- stdin.puts command
195
- stdin.close
211
+ #status = Open4::popen4('sh') do |pid, stdin, stdout, stderr|
212
+ # stdin.puts command
213
+ # stdin.close
214
+ #
215
+ # while (line = stdout.gets)
216
+ # puts line
217
+ # end
218
+ #
219
+ # while (line = stderr.gets)
220
+ # puts line.red
221
+ # end
222
+ #end
223
+ #
224
+ #unless status == 0
225
+ # puts "Command failed: #{ command }".red
226
+ # break
227
+ #end
196
228
 
197
- while (line = stdout.gets)
198
- puts line
199
- end
229
+ pid, stdin, stdout, stderr = Open4::popen4('sh')
230
+ stdin.puts command
231
+ stdin.close
200
232
 
233
+ output = false
234
+ while (line = stdout.gets)
235
+ output = true
236
+ puts line
237
+ end
238
+
239
+ ignored, status = Process.waitpid2 pid
240
+ if status.to_i == 0
241
+ puts "OK" unless output
242
+ else
243
+ puts "Command failed (#{ status.exitstatus }): #{ command }".red
201
244
  while (line = stderr.gets)
202
245
  puts line.red
203
246
  end
204
- end
205
-
206
- unless status == 0
207
- puts "Command failed: #{ command }".red
208
247
  break
209
248
  end
210
249
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thrush
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Z.d. Peacock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-05 00:00:00.000000000 Z
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docile