six-updater 0.17.2-x86-mingw32 → 0.17.3-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +4 -4
- data/lib/six/updater.rb +56 -7
- metadata +2 -2
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ require 'rake/testtask'
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
14
|
s.platform = "x86-mingw32"
|
15
15
|
s.name = 'six-updater'
|
16
|
-
s.version = '0.17.
|
16
|
+
s.version = '0.17.3'
|
17
17
|
s.has_rdoc = true
|
18
18
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
19
19
|
s.summary = 'Your summary here'
|
@@ -35,7 +35,7 @@ end
|
|
35
35
|
spec3 = Gem::Specification.new do |s|
|
36
36
|
s.platform = "x86-mswin32"
|
37
37
|
s.name = 'six-updater'
|
38
|
-
s.version = '0.17.
|
38
|
+
s.version = '0.17.3'
|
39
39
|
s.has_rdoc = true
|
40
40
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
41
41
|
s.summary = 'Your summary here'
|
@@ -56,7 +56,7 @@ end
|
|
56
56
|
|
57
57
|
spec2 = Gem::Specification.new do |s|
|
58
58
|
s.name = 'six-updater'
|
59
|
-
s.version = '0.17.
|
59
|
+
s.version = '0.17.3'
|
60
60
|
s.has_rdoc = true
|
61
61
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
62
62
|
s.summary = 'Your summary here'
|
@@ -68,7 +68,7 @@ spec2 = Gem::Specification.new do |s|
|
|
68
68
|
#s.add_dependency('win32-shortcut', '>= 0.2.3')
|
69
69
|
s.add_dependency('log4r', '>= 1.1.2')
|
70
70
|
#s.add_dependency('six-uac', '>= 0.1.0')
|
71
|
-
s.add_dependency('six-rsync', '>= 0.
|
71
|
+
s.add_dependency('six-rsync', '>= 0.4.0')
|
72
72
|
s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,spec}/**/*") + Dir.glob("lib/*/**/*.rb")
|
73
73
|
s.require_path = "lib"
|
74
74
|
s.bindir = "bin"
|
data/lib/six/updater.rb
CHANGED
@@ -38,9 +38,10 @@ end
|
|
38
38
|
module Six
|
39
39
|
# TODO: Evaluate if this module should be a class instead?
|
40
40
|
module Updater
|
41
|
-
VERSION = '0.17.
|
41
|
+
VERSION = '0.17.3'
|
42
42
|
COMPONENT = 'six-updater'
|
43
43
|
LOG_LIMIT = 9999
|
44
|
+
FOLDER = /(.*)\/(.*)/
|
44
45
|
|
45
46
|
# Configuration
|
46
47
|
case RUBY_PLATFORM
|
@@ -63,7 +64,6 @@ module Six
|
|
63
64
|
p.gsub!('\\', '/')
|
64
65
|
p
|
65
66
|
end
|
66
|
-
TOOL_PATH = File.join(BASE_PATH, 'tools')
|
67
67
|
|
68
68
|
case RUBY_PLATFORM
|
69
69
|
when /-mingw32$/, /-mswin32$/
|
@@ -77,11 +77,16 @@ module Six
|
|
77
77
|
BASE_PATH
|
78
78
|
end
|
79
79
|
HOME_PATH = File.exists?(File.join(ENV['APPDATA'])) ? File.join(ENV['APPDATA']) : TEMP_PATH
|
80
|
-
|
81
|
-
|
82
|
-
|
80
|
+
|
81
|
+
# TODO: Deprecated; This has moved to the six-updater.rb included in the windows suite
|
82
|
+
# But requires everyone to update to it, unless we do it for them :D
|
83
|
+
path = File.join(BASE_PATH, "tools")
|
84
|
+
rubypath = File.join(path, 'ruby', 'bin')
|
85
|
+
rubypath.gsub!("/", "\\")
|
86
|
+
tpath = "#{path};#{File.join(path, 'bin')};#{rubypath}"
|
83
87
|
tpath.gsub!('/', '\\')
|
84
|
-
ENV['PATH'] = "
|
88
|
+
ENV['PATH'] = "" unless ENV['PATH']
|
89
|
+
ENV['PATH'] = "#{tpath};#{ENV['PATH']}" unless ENV['PATH'].include?(tpath)
|
85
90
|
else
|
86
91
|
HOME_PATH = ENV['HOME']
|
87
92
|
TEMP_PATH = '/tmp'
|
@@ -181,9 +186,13 @@ module Six
|
|
181
186
|
log.info 'Run with --help for help'
|
182
187
|
log.warn "WARNING: Please make sure anything ArmA related has been closed / shutdown, incl explorer windows, etc"
|
183
188
|
log.debug "BASE_PATH: #{BASE_PATH}"
|
184
|
-
log.debug "TOOL_PATH: #{TOOL_PATH}"
|
185
189
|
log.debug "@config #{@config}"
|
186
190
|
|
191
|
+
unless @zip7_installed ||= begin; %x[7z]; $? == 0; rescue; false; end
|
192
|
+
puts "7z command not found"
|
193
|
+
raise StandardError
|
194
|
+
end
|
195
|
+
|
187
196
|
# Process the config file
|
188
197
|
config = "#{COMPONENT}.yml"
|
189
198
|
config = File.join(DATA_PATH, config)
|
@@ -278,6 +287,11 @@ module Six
|
|
278
287
|
end
|
279
288
|
log.debug "@config #{@config}"
|
280
289
|
|
290
|
+
procs = find_process(process_name)
|
291
|
+
unless procs.empty?
|
292
|
+
log.warn "WARNING: Found open arma processes! #{procs}, you might want to abort and close them!"
|
293
|
+
end
|
294
|
+
|
281
295
|
# PreProcess the config data
|
282
296
|
@mods = []
|
283
297
|
@mods << @config[:mods] if @config[:mods]
|
@@ -334,6 +348,41 @@ module Six
|
|
334
348
|
STDIN.gets
|
335
349
|
end
|
336
350
|
|
351
|
+
def find_process(name)
|
352
|
+
# TODO: Filter for process's folder.
|
353
|
+
|
354
|
+
pids = []
|
355
|
+
case RUBY_PLATFORM
|
356
|
+
when /-mingw32$/, /-mswin32$/
|
357
|
+
out = %x[tasklist]
|
358
|
+
out.split("\n").each do |line|
|
359
|
+
if line =~ /\A#{name}[\t| ]*([0-9]*)/
|
360
|
+
pid = $1
|
361
|
+
if pid.size > 0
|
362
|
+
pid = pid.to_i
|
363
|
+
pids << pid
|
364
|
+
end
|
365
|
+
end
|
366
|
+
end
|
367
|
+
else
|
368
|
+
%x[ps -A | grep #{name}].split("\n").each do |line|
|
369
|
+
unless line[/grep/]
|
370
|
+
line[/^\s*([0-9]*)/]
|
371
|
+
pids << $1
|
372
|
+
end
|
373
|
+
end
|
374
|
+
end
|
375
|
+
pids
|
376
|
+
end
|
377
|
+
|
378
|
+
def process_name
|
379
|
+
if @config[:app_exe][FOLDER]
|
380
|
+
$2
|
381
|
+
else
|
382
|
+
@config[:app_exe]
|
383
|
+
end
|
384
|
+
end
|
385
|
+
|
337
386
|
def sure?
|
338
387
|
log.info "Are you really sure? Please press Enter to continue, or close the application to abort."
|
339
388
|
wait
|