six-updater 0.16.1 → 0.17.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +31 -1
- data/bin/six-updater +12 -23
- data/lib/six/updater.rb +119 -97
- data/lib/six/updater/mod.rb +34 -82
- metadata +7 -49
data/Rakefile
CHANGED
@@ -11,8 +11,9 @@ require 'rake/rdoctask'
|
|
11
11
|
require 'rake/testtask'
|
12
12
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
|
+
s.platform = "i386-mingw32"
|
14
15
|
s.name = 'six-updater'
|
15
|
-
s.version = '0.
|
16
|
+
s.version = '0.17.1'
|
16
17
|
s.has_rdoc = true
|
17
18
|
s.extra_rdoc_files = ['README', 'LICENSE']
|
18
19
|
s.summary = 'Your summary here'
|
@@ -23,6 +24,28 @@ spec = Gem::Specification.new do |s|
|
|
23
24
|
s.add_dependency('win32-process', '>= 0.6.0')
|
24
25
|
s.add_dependency('win32-shortcut', '>= 0.2.3')
|
25
26
|
s.add_dependency('log4r', '>= 1.1.2')
|
27
|
+
s.add_dependency('six-uac', '>= 0.1.0')
|
28
|
+
s.add_dependency('six-rsync', '>= 0.3.4')
|
29
|
+
s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,spec}/**/*") + Dir.glob("lib/*/**/*.rb")
|
30
|
+
s.require_path = "lib"
|
31
|
+
s.bindir = "bin"
|
32
|
+
s.executables = ['six-updater']
|
33
|
+
end
|
34
|
+
|
35
|
+
spec2 = Gem::Specification.new do |s|
|
36
|
+
s.name = 'six-updater'
|
37
|
+
s.version = '0.17.1'
|
38
|
+
s.has_rdoc = true
|
39
|
+
s.extra_rdoc_files = ['README', 'LICENSE']
|
40
|
+
s.summary = 'Your summary here'
|
41
|
+
s.description = s.summary
|
42
|
+
s.author = 'Sickboy'
|
43
|
+
s.email = 'sb@dev-heaven.net'
|
44
|
+
#s.add_dependency('win32-api', '= 1.4.6')
|
45
|
+
#s.add_dependency('win32-process', '>= 0.6.0')
|
46
|
+
#s.add_dependency('win32-shortcut', '>= 0.2.3')
|
47
|
+
s.add_dependency('log4r', '>= 1.1.2')
|
48
|
+
#s.add_dependency('six-uac', '>= 0.1.0')
|
26
49
|
s.add_dependency('six-rsync', '>= 0.3.4')
|
27
50
|
s.files = %w(LICENSE README Rakefile) + Dir.glob("{bin,spec}/**/*") + Dir.glob("lib/*/**/*.rb")
|
28
51
|
s.require_path = "lib"
|
@@ -36,6 +59,13 @@ Rake::GemPackageTask.new(spec) do |p|
|
|
36
59
|
p.need_zip = true
|
37
60
|
end
|
38
61
|
|
62
|
+
Rake::GemPackageTask.new(spec2) do |p|
|
63
|
+
p.gem_spec = spec2
|
64
|
+
p.need_tar = true
|
65
|
+
p.need_zip = true
|
66
|
+
end
|
67
|
+
|
68
|
+
|
39
69
|
Rake::RDocTask.new do |rdoc|
|
40
70
|
files =['README', 'LICENSE', 'lib/**/*.rb']
|
41
71
|
rdoc.rdoc_files.add(files)
|
data/bin/six-updater
CHANGED
@@ -1,28 +1,17 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
# encoding: utf-8
|
3
3
|
|
4
|
-
gem 'six-updater'
|
5
|
-
|
6
4
|
begin
|
7
|
-
|
8
|
-
rescue
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
path = File.join(dpath, "logs")
|
22
|
-
FileUtils.mkdir_p path unless File.exists?(path)
|
23
|
-
File.open(File.join(path, "six-updater-error.log"), 'w') {|f| f.puts err}
|
24
|
-
rescue
|
25
|
-
puts "ERROR: #{$!}"
|
26
|
-
end
|
27
|
-
sleep 10
|
5
|
+
load 'six/updater-app.rb'
|
6
|
+
rescue => e
|
7
|
+
puts e.class, e.message, e.backtrace.join("\n")
|
8
|
+
begin
|
9
|
+
require 'fileutils'
|
10
|
+
path = File.join(Six::Updater::DATA_PATH, 'logs')
|
11
|
+
FileUtils.mkdir_p path unless File.exists?(path)
|
12
|
+
File.open(File.join(path, "six-updater-error.log"), 'w') {|f| f.puts e.class, e.message, e.backtrace.join("\n")}
|
13
|
+
rescue
|
14
|
+
puts "ERROR: #{$!}"
|
15
|
+
end
|
16
|
+
sleep 10
|
28
17
|
end
|
data/lib/six/updater.rb
CHANGED
@@ -2,37 +2,30 @@
|
|
2
2
|
|
3
3
|
require 'yaml'
|
4
4
|
require 'fileutils'
|
5
|
-
require 'win32/registry'
|
6
5
|
|
7
|
-
gem 'win32-api', '= 1.4.6'
|
8
|
-
gem 'win32-shortcut'
|
9
|
-
require 'win32/shortcut'
|
10
6
|
gem 'log4r', '>= 1.1.2'
|
11
7
|
require 'log4r'
|
8
|
+
require 'digest/md5'
|
9
|
+
|
10
|
+
case RUBY_PLATFORM
|
11
|
+
when /-mingw32$/, /-mswin32$/
|
12
|
+
gem 'win32-api', '= 1.4.6'
|
13
|
+
gem 'win32-shortcut'
|
14
|
+
require 'win32/shortcut'
|
15
|
+
gem 'win32-process'
|
16
|
+
require 'win32/process'
|
17
|
+
require 'win32/registry'
|
18
|
+
end
|
19
|
+
|
12
20
|
gem 'six-rsync'
|
13
21
|
require 'six/rsync'
|
14
|
-
gem 'win32-process'
|
15
|
-
require 'win32/process'
|
16
22
|
|
17
|
-
require 'digest/md5'
|
18
23
|
require 'six/updater/mod'
|
19
24
|
#require 'sixupdater/gitrepo'
|
20
25
|
require 'six/updater/rsyncrepo'
|
21
26
|
|
22
27
|
include Six::Repositories
|
23
28
|
|
24
|
-
# Language fix for alternative localizations
|
25
|
-
if RUBY_VERSION == "1.9.1"
|
26
|
-
if defined?(Ocra)
|
27
|
-
(Dir[File.join($:[-2], 'enc/*.so')] + Dir[File.join($:[-2], 'enc/trans/*.so')]).each do |file|
|
28
|
-
require file
|
29
|
-
end
|
30
|
-
end
|
31
|
-
#EXCLUDE = [12]
|
32
|
-
#(1..16).each { |i| require "enc/iso_8859_#{i}" unless EXCLUDE.include? i }
|
33
|
-
#require 'enc/windows_1251'
|
34
|
-
end
|
35
|
-
|
36
29
|
case RUBY_VERSION
|
37
30
|
when /1\.8\.[0-9]/
|
38
31
|
class Array
|
@@ -45,26 +38,21 @@ end
|
|
45
38
|
module Six
|
46
39
|
# TODO: Evaluate if this module should be a class instead?
|
47
40
|
module Updater
|
48
|
-
VERSION = '0.
|
41
|
+
VERSION = '0.17.1'
|
49
42
|
COMPONENT = 'six-updater'
|
50
|
-
|
43
|
+
LOG_LIMIT = 9999
|
44
|
+
|
51
45
|
# Configuration
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
46
|
+
case RUBY_PLATFORM
|
47
|
+
when /-mingw32$/, /-mswin32$/
|
48
|
+
ARMA2 = ['SOFTWARE\\Bohemia Interactive Studio\\ArmA 2', 'MAIN']
|
49
|
+
ARMA2_ALT = ['SOFTWARE\\Bohemia Interactive\\ArmA 2', 'InstallPath']
|
50
|
+
ARMA2_STEAM = ['SOFTWARE\\Valve\\Steam\\Common\\ARMA 2', 'InstallPath']
|
51
|
+
DESKTOP = ['Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders', 'Desktop']
|
52
|
+
end
|
53
|
+
|
56
54
|
# Fix for WinXP
|
57
|
-
BASE_PATH = if
|
58
|
-
if ENV['OCRA_EXECUTABLE'][/(.*)[\/|\\].*/]
|
59
|
-
p = $1
|
60
|
-
p.gsub!('\\', '/')
|
61
|
-
p
|
62
|
-
else
|
63
|
-
p = Dir.pwd
|
64
|
-
p.gsub!('\\', '/')
|
65
|
-
p
|
66
|
-
end
|
67
|
-
elsif defined?(TAR2RUBYSCRIPT)
|
55
|
+
BASE_PATH = if defined?(TAR2RUBYSCRIPT)
|
68
56
|
if oldlocation
|
69
57
|
oldlocation
|
70
58
|
else
|
@@ -77,6 +65,30 @@ module Six
|
|
77
65
|
end
|
78
66
|
TOOL_PATH = File.join(BASE_PATH, 'tools')
|
79
67
|
|
68
|
+
case RUBY_PLATFORM
|
69
|
+
when /-mingw32$/, /-mswin32$/
|
70
|
+
TEMP_PATH = if ENV['TEMP']
|
71
|
+
if ENV['TEMP'].size > 0
|
72
|
+
File.directory?(ENV['TEMP']) ? ENV['TEMP'] : BASE_PATH
|
73
|
+
else
|
74
|
+
BASE_PATH
|
75
|
+
end
|
76
|
+
else
|
77
|
+
BASE_PATH
|
78
|
+
end
|
79
|
+
HOME_PATH = File.exists?(File.join(ENV['APPDATA'])) ? File.join(ENV['APPDATA']) : TEMP_PATH
|
80
|
+
bpath = BASE_PATH.clone
|
81
|
+
bpath.gsub!('/', '\\')
|
82
|
+
tpath = "#{File.join(bpath, 'tools')};#{File.join(bpath, 'tools', 'bin')}"
|
83
|
+
tpath.gsub!('/', '\\')
|
84
|
+
ENV['PATH'] = "#{bpath};#{tpath};#{ENV['PATH']}"
|
85
|
+
else
|
86
|
+
HOME_PATH = '~/'
|
87
|
+
TEMP_PATH = '/tmp'
|
88
|
+
end
|
89
|
+
DATA_PATH = File.join(HOME_PATH, COMPONENT)
|
90
|
+
|
91
|
+
=begin
|
80
92
|
dpath = BASE_PATH
|
81
93
|
unless File.exists?(File.join(BASE_PATH, "legacy.txt"))
|
82
94
|
reg_path = nil
|
@@ -98,6 +110,7 @@ module Six
|
|
98
110
|
end
|
99
111
|
end
|
100
112
|
DATA_PATH = dpath
|
113
|
+
=end
|
101
114
|
|
102
115
|
lf = File.join(DATA_PATH, "logs")
|
103
116
|
FileUtils.mkdir_p(lf) unless File.directory?(lf)
|
@@ -112,16 +125,8 @@ module Six
|
|
112
125
|
end
|
113
126
|
end
|
114
127
|
|
115
|
-
LOG_LIMIT = 9999
|
116
|
-
|
117
128
|
@general_todo, @second_todo = [], []
|
118
129
|
|
119
|
-
bpath = BASE_PATH.clone
|
120
|
-
bpath.gsub!('/', '\\')
|
121
|
-
tpath = "#{File.join(bpath, 'tools')};#{File.join(bpath, 'tools', 'bin')}"
|
122
|
-
tpath.gsub!('/', '\\')
|
123
|
-
ENV['PATH'] = "#{bpath};#{tpath};#{ENV['PATH']}"
|
124
|
-
|
125
130
|
# Create config hash with default settings
|
126
131
|
@config = Hash.new
|
127
132
|
@config[:app_params] = '-noSplash -noFilePatching -showScriptErrors'
|
@@ -213,20 +218,24 @@ module Six
|
|
213
218
|
#@config[:git_path] = @config[:gitpath] if @config[:gitpath]
|
214
219
|
|
215
220
|
# Determine arma distribution and location
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
rescue
|
221
|
+
case RUBY_PLATFORM
|
222
|
+
when /-mingw32$/, /-mswin32$/
|
223
|
+
|
224
|
+
unless @config[:app_path]
|
221
225
|
begin
|
222
|
-
@config[:app_path] = Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE,
|
223
|
-
log.info "ArmA 2
|
226
|
+
@config[:app_path] = Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, ARMA2_STEAM[0])[ARMA2_STEAM[1]]
|
227
|
+
log.info "ArmA 2 Steam Distribution detected"
|
224
228
|
rescue
|
225
229
|
begin
|
226
|
-
@config[:app_path] = Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE,
|
227
|
-
log.info "ArmA 2
|
230
|
+
@config[:app_path] = Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, ARMA2_ALT[0])[ARMA2_ALT[1]]
|
231
|
+
log.info "ArmA 2 Alt Distribution detected"
|
228
232
|
rescue
|
229
|
-
|
233
|
+
begin
|
234
|
+
@config[:app_path] = Win32::Registry.open(Win32::Registry::HKEY_LOCAL_MACHINE, ARMA2[0])[ARMA2[1]]
|
235
|
+
log.info "ArmA 2 Standard Distribution detected"
|
236
|
+
rescue
|
237
|
+
log.warn "No (known) ArmA 2 Distribution detected"
|
238
|
+
end
|
230
239
|
end
|
231
240
|
end
|
232
241
|
end
|
@@ -275,7 +284,7 @@ module Six
|
|
275
284
|
|
276
285
|
@beta = false
|
277
286
|
@beta_exe = false
|
278
|
-
@beta_exe = true if @config[:app_exe][/beta[\/|\\]arma2
|
287
|
+
@beta_exe = true if @config[:app_exe][/beta[\/|\\]arma2.*/]
|
279
288
|
|
280
289
|
@config[:folders].each do |folder|
|
281
290
|
@beta = true if folder[:folder] == 'beta'
|
@@ -347,41 +356,53 @@ module Six
|
|
347
356
|
def startgame(cmd = nil)
|
348
357
|
log.info "Starting the game with #{@config[:app_params]} -mod=#{@mods}#{cmd}"
|
349
358
|
#system "\"#{@config[:app_exe]}\" #{@config[:app_params]} -mod=#{@mods}"
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
359
|
+
case RUBY_PLATFORM
|
360
|
+
when /-mingw32$/, /-mswin32$/
|
361
|
+
begin
|
362
|
+
struct = Process.create(
|
363
|
+
:app_name => File.join(@config[:app_path], @config[:app_exe]),
|
364
|
+
:command_line => " #{@config[:app_params]} -mod=#{@mods}#{cmd}",
|
365
|
+
:creation_flags => Process::DETACHED_PROCESS,
|
366
|
+
:process_inherit => false,
|
367
|
+
:thread_inherit => false,
|
368
|
+
:cwd => @config[:app_path],
|
369
|
+
:inherit => false
|
370
|
+
#:environment => ""
|
371
|
+
)
|
372
|
+
rescue
|
373
|
+
log.warn "WARNING: Something went wrong starting the app: #{@config[:app_exe]}"
|
374
|
+
log.debug "#{$!}"
|
375
|
+
end
|
376
|
+
else
|
377
|
+
Dir.chdir(@config[:app_path]) do
|
378
|
+
system "#{@config[:app_exe]} #{@config[:app_params]} -mod=#{@mods}#{cmd}"
|
379
|
+
end
|
364
380
|
end
|
365
381
|
end
|
366
382
|
|
367
383
|
def shortcut(path)
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
384
|
+
case RUBY_PLATFORM
|
385
|
+
when /-mingw32$/, /-mswin32$/
|
386
|
+
cwd = Dir.pwd
|
387
|
+
Dir.chdir path
|
388
|
+
mods = @mods.clone
|
389
|
+
mods.gsub!(/\//, '-')
|
390
|
+
mods2 = @mods.clone
|
391
|
+
mods2.gsub!('/', '\\')
|
392
|
+
name = "Play ArmA2 with #{mods}.lnk"
|
393
|
+
Win32::Shortcut.new(name) do |shortcut|
|
394
|
+
shortcut.description = "Start Arma2 with #{mods2}"
|
395
|
+
shortcut.path = File.join(@config[:app_path], @config[:app_exe])
|
396
|
+
shortcut.working_directory = @config[:app_path]
|
397
|
+
shortcut.arguments = "#{@config[:app_params]} -mod=#{mods2}"
|
398
|
+
end
|
399
|
+
str = path.clone
|
400
|
+
str.gsub!('/', '\\')
|
401
|
+
log.info "Created shortcut (in #{str}): #{name}"
|
402
|
+
Dir.chdir cwd
|
403
|
+
else
|
404
|
+
log.warn "Unsupported on current Platform: #{RUBY_PLATFORM}"
|
380
405
|
end
|
381
|
-
str = path.clone
|
382
|
-
str.gsub!('/', '\\')
|
383
|
-
log.info "Created shortcut (in #{str}): #{name}"
|
384
|
-
Dir.chdir cwd
|
385
406
|
end
|
386
407
|
|
387
408
|
def createshortcut
|
@@ -389,14 +410,19 @@ module Six
|
|
389
410
|
end
|
390
411
|
|
391
412
|
def createdesktopshortcut
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
413
|
+
case RUBY_PLATFORM
|
414
|
+
when /-mingw32$/, /-mswin32$/
|
415
|
+
begin
|
416
|
+
desktop = Win32::Registry.open(Win32::Registry::HKEY_CURRENT_USER, DESKTOP[0])[DESKTOP[1]]
|
417
|
+
while desktop =~ /\%(\w*)\%/ do
|
418
|
+
desktop.sub!("%#{$1}%", ENV[$1])
|
419
|
+
end
|
420
|
+
shortcut desktop if File.directory? desktop
|
421
|
+
rescue
|
422
|
+
log.warn "WARNING: Problem while creating shortcut! #{$!}"
|
423
|
+
end
|
424
|
+
else
|
425
|
+
log.warn "Unsupported on current Platform: #{RUBY_PLATFORM}"
|
400
426
|
end
|
401
427
|
end
|
402
428
|
|
@@ -412,7 +438,3 @@ module Six
|
|
412
438
|
end
|
413
439
|
end
|
414
440
|
end
|
415
|
-
|
416
|
-
# TODO: Evaluate position
|
417
|
-
if $0 == __FILE__
|
418
|
-
end
|
data/lib/six/updater/mod.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
module Six
|
4
4
|
module Updater
|
5
5
|
class Mod
|
6
|
+
attr_reader :changed
|
7
|
+
DEFAULT_PRIORITY = 9999
|
6
8
|
def initialize(modconfig, config)
|
7
9
|
@modconfig = modconfig
|
8
10
|
@config = config
|
@@ -37,16 +39,27 @@ module Six
|
|
37
39
|
end
|
38
40
|
|
39
41
|
# TODO: Custom paths need more consideration, especially re the -mod= line
|
40
|
-
def apppath
|
41
|
-
|
42
|
+
def apppath; @modconfig[:path] ? @modconfig[:path] : @config[:app_modpath]; end
|
43
|
+
def priority; @modconfig[:priority] ? @modconfig[:priority] : DEFAULT_PRIORITY; end
|
44
|
+
def esc(val); "\"#{val}\""; end
|
45
|
+
def log; Six::Updater.log; end
|
46
|
+
def sure?; Six::Updater.sure?; end
|
47
|
+
def log_status; log.warn "Status: #{@repository.status.join("\n")}" if @repository.status.size > 0; end
|
48
|
+
def not_a_repository; log.warn "Does not seem to be a repository!"; end
|
49
|
+
|
50
|
+
def disabled?
|
51
|
+
log.info "Mod is tagged 'disabled' in the configuration file. Skipping..." if @modconfig[:disabled]
|
52
|
+
@modconfig[:disabled]
|
42
53
|
end
|
43
54
|
|
44
|
-
def
|
45
|
-
|
55
|
+
def installed?
|
56
|
+
not_a_repository unless @installed
|
57
|
+
@installed
|
46
58
|
end
|
47
59
|
|
48
|
-
def
|
49
|
-
|
60
|
+
def skip?
|
61
|
+
log.info "Mod is tagged 'skip' in the configuration file. Skipping..." if @modconfig[:skip]
|
62
|
+
@modconfig[:skip]
|
50
63
|
end
|
51
64
|
|
52
65
|
def get_repositories
|
@@ -60,26 +73,6 @@ module Six
|
|
60
73
|
end
|
61
74
|
end
|
62
75
|
|
63
|
-
def log
|
64
|
-
Six::Updater.log
|
65
|
-
end
|
66
|
-
|
67
|
-
def changed
|
68
|
-
@changed
|
69
|
-
end
|
70
|
-
|
71
|
-
def sure?
|
72
|
-
Six::Updater.sure?
|
73
|
-
end
|
74
|
-
|
75
|
-
def log_status
|
76
|
-
log.warn "Status: #{@repository.status.join("\n")}" if @repository.status.size > 0
|
77
|
-
end
|
78
|
-
|
79
|
-
def not_a_repository
|
80
|
-
log.warn "Does not seem to be a repository!"
|
81
|
-
end
|
82
|
-
|
83
76
|
def write_version
|
84
77
|
@modconfig[:versionfile][/(.*)\/(.*)/]
|
85
78
|
folder = $1
|
@@ -95,15 +88,8 @@ module Six
|
|
95
88
|
end
|
96
89
|
|
97
90
|
def changelog
|
98
|
-
if
|
99
|
-
|
100
|
-
return
|
101
|
-
end
|
102
|
-
|
103
|
-
unless @installed
|
104
|
-
not_a_repository
|
105
|
-
return
|
106
|
-
end
|
91
|
+
return if self.disabled?
|
92
|
+
return unless self.installed?
|
107
93
|
|
108
94
|
unless @stat[:previous] == @stat[:current]
|
109
95
|
log.info 'Playing log...'
|
@@ -116,15 +102,8 @@ module Six
|
|
116
102
|
|
117
103
|
# RESET process (incase everything FOOKED :D)
|
118
104
|
def reset
|
119
|
-
if
|
120
|
-
|
121
|
-
return
|
122
|
-
end
|
123
|
-
|
124
|
-
unless @installed
|
125
|
-
not_a_repository
|
126
|
-
return
|
127
|
-
end
|
105
|
+
return if self.disabled?
|
106
|
+
return unless self.installed?
|
128
107
|
|
129
108
|
log.warn "###########"
|
130
109
|
log.warn "# WARNING #"
|
@@ -138,8 +117,7 @@ module Six
|
|
138
117
|
|
139
118
|
# UPDATE Process
|
140
119
|
def update
|
141
|
-
if
|
142
|
-
log.info "Mod is tagged 'skip' in the configuration file. Skipping..."
|
120
|
+
if self.skip?
|
143
121
|
begin
|
144
122
|
userconfig(false)
|
145
123
|
rescue
|
@@ -148,16 +126,10 @@ module Six
|
|
148
126
|
end
|
149
127
|
return
|
150
128
|
else
|
151
|
-
if
|
152
|
-
log.info "Mod is tagged 'disabled' in the configuration file. Skipping..."
|
153
|
-
return
|
154
|
-
end
|
129
|
+
return if self.disabled?
|
155
130
|
end
|
156
131
|
|
157
|
-
|
158
|
-
not_a_repository
|
159
|
-
return
|
160
|
-
end
|
132
|
+
return unless self.installed?
|
161
133
|
|
162
134
|
@stat[:previous] = @repository.version
|
163
135
|
log.info "Current Version: #{@stat[:previous]}, checking for updates..."
|
@@ -205,12 +177,8 @@ module Six
|
|
205
177
|
# INSTALL process
|
206
178
|
def install
|
207
179
|
log.debug "Path: #{@path}"
|
208
|
-
if
|
209
|
-
|
210
|
-
return
|
211
|
-
end
|
212
|
-
|
213
|
-
if @installed
|
180
|
+
return if self.disabled?
|
181
|
+
if self.installed?
|
214
182
|
log.info "Already installed, trying to update..."
|
215
183
|
update
|
216
184
|
else
|
@@ -224,8 +192,6 @@ module Six
|
|
224
192
|
basepath, subfolder = $1, $2
|
225
193
|
basepath = File.join(@config[:app_modpath], basepath)
|
226
194
|
FileUtils.mkdir_p basepath unless FileTest.exist?(basepath)
|
227
|
-
#Dir.chdir basepath
|
228
|
-
#folder = File.join(basepath, subfolder)
|
229
195
|
end
|
230
196
|
|
231
197
|
file = File.join(DATA_PATH, "#{@folder_str}.7z")
|
@@ -297,10 +263,7 @@ module Six
|
|
297
263
|
|
298
264
|
# UNINSTALL process
|
299
265
|
def uninstall
|
300
|
-
if
|
301
|
-
log.info "Mod is tagged 'disabled' in the configuration file. Skipping..."
|
302
|
-
return
|
303
|
-
end
|
266
|
+
return if self.disabled?
|
304
267
|
|
305
268
|
if FileTest.exist?(@path)
|
306
269
|
log.warn "###########"
|
@@ -316,14 +279,8 @@ module Six
|
|
316
279
|
|
317
280
|
# Process keys
|
318
281
|
def keys(force = true)
|
319
|
-
if
|
320
|
-
|
321
|
-
return
|
322
|
-
end
|
323
|
-
unless @installed
|
324
|
-
not_a_repository
|
325
|
-
return
|
326
|
-
end
|
282
|
+
return if self.disabled?
|
283
|
+
return unless self.installed?
|
327
284
|
|
328
285
|
path = File.join(@path, 'store', 'keys.tar')
|
329
286
|
path = File.join(@path, 'store', 'keys') unless File.exists?(path)
|
@@ -357,14 +314,9 @@ module Six
|
|
357
314
|
# Process userconfigs
|
358
315
|
# TODO: Add this processing to update, aka; IF userconfig has changed THEN update it
|
359
316
|
def userconfig(force = true)
|
360
|
-
if
|
361
|
-
|
362
|
-
|
363
|
-
end
|
364
|
-
unless @installed
|
365
|
-
not_a_repository
|
366
|
-
return
|
367
|
-
end
|
317
|
+
return if self.disabled?
|
318
|
+
return unless self.installed?
|
319
|
+
|
368
320
|
# TODO: Process this on file level instead of folder level?
|
369
321
|
time = Time.now.to_i
|
370
322
|
f = @modconfig[:folder].clone
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 17
|
8
8
|
- 1
|
9
|
-
version: 0.
|
9
|
+
version: 0.17.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Sickboy
|
@@ -14,55 +14,13 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-22 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
name: win32-api
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
requirements:
|
25
|
-
- - "="
|
26
|
-
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 4
|
30
|
-
- 6
|
31
|
-
version: 1.4.6
|
32
|
-
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: win32-process
|
36
|
-
prerelease: false
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - ">="
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
|
-
- 6
|
44
|
-
- 0
|
45
|
-
version: 0.6.0
|
46
|
-
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: win32-shortcut
|
50
|
-
prerelease: false
|
51
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
segments:
|
56
|
-
- 0
|
57
|
-
- 2
|
58
|
-
- 3
|
59
|
-
version: 0.2.3
|
60
|
-
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
20
|
- !ruby/object:Gem::Dependency
|
63
21
|
name: log4r
|
64
22
|
prerelease: false
|
65
|
-
requirement: &
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
66
24
|
requirements:
|
67
25
|
- - ">="
|
68
26
|
- !ruby/object:Gem::Version
|
@@ -72,11 +30,11 @@ dependencies:
|
|
72
30
|
- 2
|
73
31
|
version: 1.1.2
|
74
32
|
type: :runtime
|
75
|
-
version_requirements: *
|
33
|
+
version_requirements: *id001
|
76
34
|
- !ruby/object:Gem::Dependency
|
77
35
|
name: six-rsync
|
78
36
|
prerelease: false
|
79
|
-
requirement: &
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
80
38
|
requirements:
|
81
39
|
- - ">="
|
82
40
|
- !ruby/object:Gem::Version
|
@@ -86,7 +44,7 @@ dependencies:
|
|
86
44
|
- 4
|
87
45
|
version: 0.3.4
|
88
46
|
type: :runtime
|
89
|
-
version_requirements: *
|
47
|
+
version_requirements: *id002
|
90
48
|
description: Your summary here
|
91
49
|
email: sb@dev-heaven.net
|
92
50
|
executables:
|