depengine 3.0.20 → 3.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/.rubocop_todo.yml +52 -0
  4. data/Gemfile.lock +16 -1
  5. data/Rakefile +9 -9
  6. data/bin/cdb_crypt +2 -2
  7. data/bin/de +1 -1
  8. data/bin/depengine +2 -2
  9. data/bin/spec_setup +2 -2
  10. data/depengine.gemspec +22 -21
  11. data/lib/depengine/asserter/url.rb +8 -9
  12. data/lib/depengine/cli.rb +12 -14
  13. data/lib/depengine/dsl/cdb.rb +16 -17
  14. data/lib/depengine/dsl/deployment.rb +42 -50
  15. data/lib/depengine/dsl/dweb.rb +10 -11
  16. data/lib/depengine/dsl/executor.rb +5 -5
  17. data/lib/depengine/dsl/fileops.rb +3 -4
  18. data/lib/depengine/dsl/helper.rb +26 -28
  19. data/lib/depengine/dsl/iis.rb +21 -24
  20. data/lib/depengine/dsl/patch.rb +22 -46
  21. data/lib/depengine/dsl/publisher.rb +14 -14
  22. data/lib/depengine/dsl/remote.rb +11 -13
  23. data/lib/depengine/dsl/repository.rb +19 -21
  24. data/lib/depengine/dsl/template.rb +19 -19
  25. data/lib/depengine/dsl/zip.rb +24 -24
  26. data/lib/depengine/helper/cli_helper.rb +9 -11
  27. data/lib/depengine/helper/hudson.rb +15 -19
  28. data/lib/depengine/helper/mail.rb +19 -25
  29. data/lib/depengine/helper/properties.rb +33 -52
  30. data/lib/depengine/helper/smb.rb +19 -25
  31. data/lib/depengine/helper/validations.rb +7 -7
  32. data/lib/depengine/helper/yaml.rb +7 -9
  33. data/lib/depengine/log/log.rb +3 -6
  34. data/lib/depengine/processor/erb_template.rb +42 -47
  35. data/lib/depengine/processor/fileops.rb +39 -48
  36. data/lib/depengine/processor/local_execute.rb +6 -4
  37. data/lib/depengine/processor/properties.rb +34 -56
  38. data/lib/depengine/processor/sed.rb +8 -12
  39. data/lib/depengine/processor/tags.rb +9 -10
  40. data/lib/depengine/processor/template.rb +27 -32
  41. data/lib/depengine/processor/zip.rb +16 -20
  42. data/lib/depengine/provider/cdb.rb +64 -71
  43. data/lib/depengine/provider/cdb_filesystem.rb +18 -26
  44. data/lib/depengine/provider/git.rb +37 -42
  45. data/lib/depengine/provider/repository.rb +161 -176
  46. data/lib/depengine/publisher/dweb.rb +74 -90
  47. data/lib/depengine/publisher/iis.rb +23 -30
  48. data/lib/depengine/publisher/rsync.rb +14 -17
  49. data/lib/depengine/publisher/samba.rb +12 -14
  50. data/lib/depengine/publisher/sftp.rb +51 -61
  51. data/lib/depengine/publisher/ssh.rb +19 -22
  52. data/lib/depengine/publisher/tomcat.rb +19 -21
  53. data/lib/depengine/reporter/cdb.rb +2 -3
  54. data/lib/depengine/version.rb +1 -1
  55. data/lib/depengine.rb +1 -2
  56. data/spec/cdb_spec.rb +8 -10
  57. data/spec/demo_recipe/recipes/demo.rb +10 -10
  58. data/spec/deployhelper_spec.rb +20 -21
  59. data/spec/fileops_spec.rb +11 -12
  60. data/spec/git_spec.rb +8 -4
  61. data/spec/helper_spec.rb +75 -75
  62. data/spec/junit.rb +47 -49
  63. data/spec/local_execute.rb +7 -7
  64. data/spec/log_spec.rb +17 -18
  65. data/spec/properties_spec.rb +13 -15
  66. data/spec/recipe_spec.rb +15 -16
  67. data/spec/repository_spec.rb +20 -20
  68. data/spec/ssh_spec.rb +18 -19
  69. data/spec/template_spec.rb +30 -30
  70. data/spec/zip_spec.rb +7 -7
  71. metadata +18 -2
@@ -20,48 +20,44 @@ module Publisher
20
20
  # debug with:
21
21
  # ssh -i apps/deploy_engine/etc/ssh/id_rsa.deployadmin dwebuser@dei[iup]2s.dweb.intranet.db.com
22
22
  # > 'enter command'
23
- def send_command(command, options={})
24
- Helper.validates_presence_of staging_host, "Staging Host not set"
25
- Helper.validates_presence_of ssh_key_file, "SSH keyfile not set"
26
- Helper.validates_presence_of siteid, "Siteid not set"
23
+ def send_command(command, options = {})
24
+ Helper.validates_presence_of staging_host, 'Staging Host not set'
25
+ Helper.validates_presence_of ssh_key_file, 'SSH keyfile not set'
26
+ Helper.validates_presence_of siteid, 'Siteid not set'
27
27
 
28
28
  result = ''
29
29
  joined_filename = File.join(File.dirname($exec_file_path), ssh_key_file)
30
30
  ssh_key_file = joined_filename
31
31
 
32
32
  # overwrite siteid for multi target deployments
33
- if not options[:siteid].nil?
34
- self.siteid = options[:siteid]
35
- end
33
+ self.siteid = options[:siteid] if options[:siteid]
36
34
 
37
35
  # check ssh keyfile
38
- if not File.file? ssh_key_file
36
+ unless File.file? ssh_key_file
39
37
  $log.writer.error "Can not find SSH keyfile #{ssh_key_file}"
40
- exit 1
38
+ fail "Can not find SSH keyfile #{ssh_key_file}"
41
39
  end
42
40
 
43
41
  ### Probleme auf UAT und PROD
44
- if command.include? "list"
45
- return result
46
- end
47
-
48
- Net::SSH.start(staging_host, "dwebuser", \
49
- :auth_methods => ['publickey'], \
50
- :forward_agent => false, \
51
- :keys => ssh_key_file, \
52
- :timeout => 90 ) do |session|
53
- session.open_channel do |ch|
54
- ch.exec "/scripts/dwebuser #{siteid}" do |ch, success|
55
- if not success
56
- $log.writer.error "Can not execute dwebuser command"
42
+ return result if command.include? 'list'
43
+
44
+ Net::SSH.start(staging_host, 'dwebuser', \
45
+ auth_methods: ['publickey'], \
46
+ forward_agent: false, \
47
+ keys: ssh_key_file, \
48
+ timeout: 90) do |session|
49
+ session.open_channel do |channel|
50
+ channel.exec "/scripts/dwebuser #{siteid}" do |ch, success|
51
+ unless success
52
+ $log.writer.error 'Can not execute dwebuser command'
57
53
  exit 1
58
54
  end
59
55
 
60
- ch.on_data do |ch, data|
61
- if not data.empty?
56
+ ch.on_data do |_ch, data|
57
+ unless data.empty?
62
58
  result << data
63
59
 
64
- if command.include? "list"
60
+ if command.include? 'list'
65
61
  result_a = result.split("\n")
66
62
  test = result_a.last
67
63
  if not test.nil? and test.length > 0
@@ -73,7 +69,7 @@ module Publisher
73
69
  end
74
70
 
75
71
  # something on stderr?
76
- ch.on_extended_data do |ch, type, data|
72
+ ch.on_extended_data do |_ch, _type, data|
77
73
  # dirty filter for non critical return messages
78
74
  if data =~ /^ERROR.*/
79
75
  $log.writer.error \
@@ -85,82 +81,79 @@ module Publisher
85
81
  end
86
82
  end
87
83
 
88
- ch.on_close do |ch|
89
- result << "all done, closing ssh channel!"
84
+ ch.on_close do |_ch|
85
+ result << 'all done, closing ssh channel!'
90
86
  end
91
87
 
92
88
  ch.send_data command + "\n"
93
89
  end
94
- ch.wait
90
+ channel.wait
95
91
  end
96
92
  end
97
93
  $log.writer.debug result
98
94
 
99
- return result
95
+ result
100
96
  end
101
97
 
102
- def upload(source, target, options={})
103
- Helper.validates_presence_of staging_host, "Staging Host not set"
104
- Helper.validates_presence_of ssh_key_file, "SSH keyfile not set"
98
+ def upload(source, target, options = {})
99
+ Helper.validates_presence_of staging_host, 'Staging Host not set'
100
+ Helper.validates_presence_of ssh_key_file, 'SSH keyfile not set'
105
101
 
106
- result = ''
107
102
  joined_filename = File.join(File.dirname($exec_file_path), ssh_key_file)
108
103
  ssh_key_file = joined_filename
109
104
 
110
105
  # overwrite siteid for multi target deployments
111
- if not options[:siteid].nil?
112
- self.siteid = options[:siteid]
113
- end
114
- Helper.validates_presence_of siteid, "Siteid not set"
106
+ self.siteid = options[:siteid] if options[:siteid]
107
+ Helper.validates_presence_of siteid, 'Siteid not set'
115
108
 
116
109
  # check ssh keyfile
117
- if not File.file? ssh_key_file
110
+ unless File.file? ssh_key_file
118
111
  $log.writer.error "Can not find SSH keyfile #{ssh_key_file}"
119
- exit 1
112
+ fail "Can not find SSH keyfile #{ssh_key_file}"
120
113
  end
121
114
 
122
115
  # first connection to delete files
123
116
  begin
124
- if not options[:cleanup] == false
117
+ unless options[:cleanup] == false
125
118
  Net::SFTP.start(staging_host, siteid + 'f', \
126
- :auth_methods => ['publickey'], \
127
- :forward_agent => false, \
128
- :keys => ssh_key_file, \
129
- :timeout => 90 ) do |session|
119
+ auth_methods: ['publickey'], \
120
+ forward_agent: false, \
121
+ keys: ssh_key_file, \
122
+ timeout: 90) do |session|
130
123
 
131
124
  # delete all files in target, but not the target-dir itself
132
125
  $log.writer.debug "Cleaning remote directory #{target}"
133
126
  session.rm_r!(target)
134
-
127
+
135
128
  end
136
129
  end
137
130
  # second connection to upload files
138
- processing_file = ""
131
+ processing_file = ''
139
132
  Net::SCP.start(staging_host, siteid + 'f', \
140
- :auth_methods => ['publickey'], \
141
- :forward_agent => false, \
142
- :keys => ssh_key_file, \
143
- :timeout => 90 ) do |session|
133
+ auth_methods: ['publickey'], \
134
+ forward_agent: false, \
135
+ keys: ssh_key_file, \
136
+ timeout: 90) do |session|
144
137
  Dir.glob(File.join(source, '/*'), File::FNM_DOTMATCH) do |entry|
145
- if not entry =~ /\.$/
138
+ unless entry =~ /\.$/
146
139
  processing_file = entry
147
140
  if not options[:excludes].nil?
148
- if options[:excludes].any? {|term| entry.include? term }
141
+ if options[:excludes].any? { |term| entry.include? term }
149
142
  $log.writer.debug "Exclude #{entry} from upload"
150
143
  else
151
144
  $log.writer.debug "Upload #{entry}"
152
145
  session.upload!(entry, File.join(target, '/'), \
153
- :recursive => true)
146
+ recursive: true)
154
147
  end
155
148
  else
156
149
  $log.writer.debug "Upload #{entry}"
157
150
  session.upload!(entry, File.join(target, '/'), \
158
- :recursive => true)
151
+ recursive: true)
159
152
  end
160
153
  end
161
154
  end
162
155
  end
163
- rescue Exception => e
156
+ rescue => e
164
157
  $log.writer.error "Can not upload file #{processing_file} to #{target}"
165
158
  $log.writer.error e.message
166
159
  $log.writer.error e.backtrace.join("\n")
@@ -168,60 +161,54 @@ module Publisher
168
161
  end
169
162
  end
170
163
 
171
- def remote_symlink(source, symlink, options={})
172
- Helper.validates_presence_of staging_host, "Staging Host not set"
173
- Helper.validates_presence_of ssh_key_file, "SSH keyfile not set"
164
+ def remote_symlink(source, symlink, options = {})
165
+ Helper.validates_presence_of staging_host, 'Staging Host not set'
166
+ Helper.validates_presence_of ssh_key_file, 'SSH keyfile not set'
174
167
 
175
- result = ''
176
168
  joined_filename = File.join(File.dirname($exec_file_path), ssh_key_file)
177
169
  ssh_key_file = joined_filename
178
170
 
179
171
  # overwrite siteid for multi target deployments
180
- if not options[:siteid].nil?
181
- self.siteid = options[:siteid]
182
- end
183
- Helper.validates_presence_of siteid, "Siteid not set"
172
+ self.siteid = options[:siteid] if options[:siteid]
173
+ Helper.validates_presence_of siteid, 'Siteid not set'
184
174
 
185
175
  # check ssh keyfile
186
- if not File.file? ssh_key_file
176
+ unless File.file? ssh_key_file
187
177
  $log.writer.error "Can not find SSH keyfile #{ssh_key_file}"
188
178
  exit 1
189
179
  end
190
180
 
191
181
  begin
192
182
  Net::SFTP.start(staging_host, siteid + 'f', \
193
- :auth_methods => ['publickey'], \
194
- :forward_agent => false, \
195
- :keys => ssh_key_file, \
196
- :timeout => 90 ) do |session|
197
- begin
198
- if session.lstat!(symlink).type == Net::SFTP::Protocol::V01::Attributes::T_SYMLINK
199
- $log.writer.debug "Delete already existing link #{symlink}"
200
- session.remove!(symlink)
201
- end
202
- rescue
203
- # maybe the link does not exist yet, or the remove faild
204
- # anyway, we try to create it
205
- end
206
- session.symlink!(source, symlink)
183
+ auth_methods: ['publickey'], \
184
+ forward_agent: false, \
185
+ keys: ssh_key_file, \
186
+ timeout: 90) do |session|
187
+ begin
188
+ if session.lstat!(symlink).type == Net::SFTP::Protocol::V01::Attributes::T_SYMLINK
189
+ $log.writer.debug "Delete already existing link #{symlink}"
190
+ session.remove!(symlink)
191
+ end
192
+ rescue
193
+ $log.writer.warn 'Maybe the link does not exist yet, or the remove faild. Anyway, we try to create it.'
194
+ end
195
+ session.symlink!(source, symlink)
207
196
  end
208
- rescue Exception => e
209
- $log.writer.error "Can not create remote symlink #{symlink} to #{source}
210
- "
197
+ rescue => e
198
+ $log.writer.error "Can not create remote symlink #{symlink} to #{source}"
211
199
  $log.writer.error e.message
212
200
  $log.writer.error e.backtrace.join("\n")
213
201
  exit 1
214
202
  end
215
203
  true
216
204
  end
217
-
218
205
  end
219
206
  end
220
207
 
221
- class Net::SFTP::Session
222
- def rm_r!(path, options={})
208
+ class Net::SFTP::Session # rubocop:disable Style/ClassAndModuleChildren
209
+ def rm_r!(path, options = {})
223
210
  @rm_depth = 0 if @rm_depth.nil?
224
- self.dir.entries(path).each do |entry|
211
+ dir.entries(path).each do |entry|
225
212
 
226
213
  next if entry.name == '.' or entry.name == '..'
227
214
 
@@ -237,9 +224,6 @@ class Net::SFTP::Session
237
224
  end
238
225
  end
239
226
 
240
- if @rm_depth != 0 or options[:delete_root]
241
- self.rmdir!(path)
242
- end
227
+ self.rmdir!(path) if @rm_depth != 0 or options[:delete_root]
243
228
  end
244
229
  end
245
-
@@ -3,8 +3,8 @@ module Publisher
3
3
  attr_accessor :url, :protocol, :http_read_timeout
4
4
 
5
5
  def build(tag, env, version, value, application_name)
6
- Helper.validates_presence_of @url, "IIS URL not set"
7
- Helper.validates_presence_of @protocol, "Protocol not set"
6
+ Helper.validates_presence_of @url, 'IIS URL not set'
7
+ Helper.validates_presence_of @protocol, 'Protocol not set'
8
8
  iis_error = false
9
9
 
10
10
  begin
@@ -16,30 +16,27 @@ module Publisher
16
16
  request.content_type = 'application/x-www-form-urlencoded;charset=utf-8'
17
17
  http.request request do |response|
18
18
  response.read_body do |chunk|
19
- if chunk.include?("### Error while executing")
20
- $log.writer.error "Error executing build on IIS"
19
+ if chunk.include?('### Error while executing')
20
+ $log.writer.error 'Error executing build on IIS'
21
21
  iis_error = true
22
22
  end
23
23
  $log.writer.info "#{chunk}"
24
24
  end
25
25
  end
26
26
  end
27
- rescue Exception => e
28
- $log.writer.error "Error: while connecting to IIS Server"
29
- $log.writer.error "Request was: #{uri.to_s}"
27
+ rescue => e
28
+ $log.writer.error 'Error: while connecting to IIS Server'
29
+ $log.writer.error "Request was: #{uri}"
30
30
  $log.writer.error e.message
31
31
  exit 1
32
32
  end
33
33
 
34
- if iis_error
35
- exit 1
36
- end
37
-
34
+ fail if iis_error
38
35
  end
39
36
 
40
37
  def appcmd(value)
41
- Helper.validates_presence_of @url, "IIS URL not set"
42
- Helper.validates_presence_of @protocol, "Protocol not set"
38
+ Helper.validates_presence_of @url, 'IIS URL not set'
39
+ Helper.validates_presence_of @protocol, 'Protocol not set'
43
40
 
44
41
  begin
45
42
  uri = URI(@protocol + '://' + @url)
@@ -54,17 +51,17 @@ module Publisher
54
51
  end
55
52
  end
56
53
  end
57
- rescue Exception => e
58
- $log.writer.error "Error: while connecting to IIS Server"
59
- $log.writer.error "Request was: #{uri.to_s}"
54
+ rescue => e
55
+ $log.writer.error 'Error: while connecting to IIS Server'
56
+ $log.writer.error "Request was: #{uri}"
60
57
  $log.writer.error e.message
61
58
  exit 1
62
59
  end
63
60
  end
64
61
 
65
- def deploy(version, iis_application_name, env)
66
- Helper.validates_presence_of @url, "IIS URL not set"
67
- Helper.validates_presence_of @protocol, "Protocol not set"
62
+ def deploy(version, iis_application_name, env)
63
+ Helper.validates_presence_of @url, 'IIS URL not set'
64
+ Helper.validates_presence_of @protocol, 'Protocol not set'
68
65
  iis_error = false
69
66
 
70
67
  begin
@@ -76,26 +73,22 @@ module Publisher
76
73
  request.content_type = 'application/x-www-form-urlencoded;charset=utf-8'
77
74
  http.request request do |response|
78
75
  response.read_body do |chunk|
79
- if chunk.include?("### Error while executing")
80
- $log.writer.error "Error executing deploy on IIS"
76
+ if chunk.include?('### Error while executing')
77
+ $log.writer.error 'Error executing deploy on IIS'
81
78
  iis_error = true
82
79
  end
83
80
  $log.writer.info "#{chunk}"
84
81
  end
85
82
  end
86
83
  end
87
- rescue Exception => e
88
- $log.writer.error "Error: while connecting to IIS Server"
89
- $log.writer.error "Request was: #{uri.to_s}"
84
+ rescue => e
85
+ $log.writer.error 'Error: while connecting to IIS Server'
86
+ $log.writer.error "Request was: #{uri}"
90
87
  $log.writer.error e.message
91
88
  exit 1
92
89
  end
93
90
 
94
- if iis_error
95
- exit 1
96
- end
97
-
91
+ fail if iis_error
98
92
  end
99
-
100
93
  end
101
- end
94
+ end
@@ -4,20 +4,19 @@ module Publisher
4
4
  attr_accessor :remote_user
5
5
  attr_accessor :ssh_key_file
6
6
 
7
- def sync(source, target, options={})
7
+ def sync(source, target, options = {})
8
8
  # default options
9
- command_options = ["-a"]
9
+ command_options = ['-a']
10
10
  if options[:local].nil? or options[:local] == false
11
- Helper.validates_presence_of remote_host, "Remote Host not set"
12
- Helper.validates_presence_of remote_user, "Remote User not set"
13
- Helper.validates_presence_of ssh_key_file, "SSH-Keyfile not set"
11
+ Helper.validates_presence_of remote_host, 'Remote Host not set'
12
+ Helper.validates_presence_of remote_user, 'Remote User not set'
13
+ Helper.validates_presence_of ssh_key_file, 'SSH-Keyfile not set'
14
14
 
15
15
  target = "#{remote_user}@#{remote_host}:" + target
16
16
  command_options << "-e \'ssh -c arcfour -o StrictHostKeyChecking=no -i #{ssh_key_file}\'"
17
17
  end
18
18
 
19
19
  rsync = options[:rsync_bin] || 'rsync'
20
- result = ''
21
20
 
22
21
  if not options[:delete].nil? and options[:delete] == true
23
22
  command_options << '--delete'
@@ -25,7 +24,7 @@ module Publisher
25
24
  if not options[:whole_file].nil? and options[:whole_file] == true
26
25
  command_options << '-W'
27
26
  end
28
- if not options[:rsync_path].nil?
27
+ unless options[:rsync_path].nil?
29
28
  command_options << "--rsync-path=#{options[:rsync_path]}"
30
29
  end
31
30
  if options[:one_filesystem].nil? or options[:one_filesystem] == true
@@ -34,11 +33,10 @@ module Publisher
34
33
  if options[:compression].nil? or options[:compression] == true
35
34
  command_options << '-z'
36
35
  end
37
- if not options[:exclude].nil?
36
+ unless options[:exclude].nil?
38
37
  [options[:exclude]].flatten.each do |current_exclude|
39
- if current_exclude > ""
40
- command_options << "--exclude #{current_exclude}"
41
- end
38
+ next unless current_exclude > ''
39
+ command_options << "--exclude #{current_exclude}"
42
40
  end
43
41
  end
44
42
 
@@ -47,16 +45,16 @@ module Publisher
47
45
  # options[:whole_file] default false
48
46
  # options[:one_filesystem] default true
49
47
  # options[:compression] default true
50
- # todo: ssh-agent preload key with passphrase
48
+ # TODO: ssh-agent preload key with passphrase
51
49
  begin
52
50
  $log.writer.debug "#{rsync} #{command_options.join(' ')} #{source} #{target}"
53
- stdout = %x"#{rsync} #{command_options.join(' ')} \"#{source}\" \"#{target}\""
51
+ stdout = `#{rsync} #{command_options.join(' ')} \"#{source}\" \"#{target}\"`
54
52
  $log.writer.debug stdout
55
53
 
56
- if not RUBY_VERSION < '1.9'
57
- raise 'rsync execution error' if $?.exitstatus != 0
54
+ unless RUBY_VERSION < '1.9'
55
+ fail 'rsync execution error' if $CHILD_STATUS.exitstatus != 0
58
56
  end
59
- rescue Exception => e
57
+ rescue => e
60
58
  $log.writer.error "Can not sync directory #{source} with #{target}"
61
59
  $log.writer.error e.message
62
60
  $log.writer.error e.backtrace.join("\n")
@@ -65,4 +63,3 @@ module Publisher
65
63
  end
66
64
  end
67
65
  end
68
-
@@ -5,19 +5,19 @@ module Publisher
5
5
  attr_accessor :samba_mountpoints
6
6
  attr_accessor :worker
7
7
 
8
- def copy(source, target, options={})
9
- Helper.validates_presence_of samba_mountpoints, "Samba mountpoints not set"
10
- Helper.validates_presence_of samba_share, "Samba Share not set"
8
+ def copy(source, target, _options = {})
9
+ Helper.validates_presence_of samba_mountpoints, 'Samba mountpoints not set'
10
+ Helper.validates_presence_of samba_share, 'Samba Share not set'
11
11
 
12
12
  begin
13
13
  begin
14
14
  # mount
15
- worker.samba_mount(samba_share,"#{samba_mountpoints}/#{samba_share}")
15
+ worker.samba_mount(samba_share, "#{samba_mountpoints}/#{samba_share}")
16
16
 
17
17
  to = "#{samba_mountpoints}/#{samba_share}/#{target}"
18
18
  ### create target directory
19
- if not File.directory?(to)
20
- if not FileUtils.mkdir_p(to)
19
+ unless File.directory?(to)
20
+ unless FileUtils.mkdir_p(to)
21
21
  $log.writer.error "Unable to create target directory #{to}"
22
22
  exit 1
23
23
  end
@@ -27,7 +27,7 @@ module Publisher
27
27
  shell_cmd = "rsync -a --delete #{source} #{to}"
28
28
  $log.writer.debug "Execute command: #{shell_cmd}"
29
29
  output = system shell_cmd
30
- if not output
30
+ unless output
31
31
  $log.writer.error "#{method} #{shell_cmd} failed"
32
32
  exit 1
33
33
  end
@@ -36,27 +36,25 @@ module Publisher
36
36
  # umount
37
37
  worker.samba_umount("#{samba_mountpoints}/#{samba_share}")
38
38
 
39
- rescue Exception => e
40
- $log.writer.error "Can not publish files using samba"
39
+ rescue => e
40
+ $log.writer.error 'Can not publish files using samba'
41
41
  $log.writer.error e.message
42
42
  $log.writer.error e.backtrace.join("\n")
43
43
  worker.samba_umount("#{samba_mountpoints}/#{samba_share}")
44
44
  exit 1
45
45
  end
46
46
 
47
- rescue Exception => e
47
+ rescue => e
48
48
  $log.writer.error "Can not upload files to #{target}"
49
49
  $log.writer.error e.message
50
50
  $log.writer.error e.backtrace.join("\n")
51
51
  exit 1
52
52
  end
53
-
54
53
  end
55
54
 
56
- def chmod(path, permissions, options={})
57
- $log.writer.fatal "Not yet implemented"
55
+ def chmod(_path, _permissions, _options = {})
56
+ $log.writer.fatal 'Not yet implemented'
58
57
  exit 1
59
58
  end
60
59
  end
61
60
  end
62
-