six-updater-web 0.19.5 → 0.19.6

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ require 'rake/testtask'
7
7
 
8
8
  spec = Gem::Specification.new do |s|
9
9
  s.name = 'six-updater-web'
10
- s.version = '0.19.5'
10
+ s.version = '0.19.6'
11
11
  s.has_rdoc = false
12
12
  #s.extra_rdoc_files = ['README', 'LICENSE']
13
13
  s.summary = 'Your summary here'
@@ -12,6 +12,7 @@ class AppsettingsController < ApplicationController
12
12
  :params,
13
13
  :sixconfigs,
14
14
  :beta,
15
+ :server,
15
16
  :type,
16
17
  # :created_at,
17
18
  :updated_at
@@ -22,7 +23,7 @@ class AppsettingsController < ApplicationController
22
23
 
23
24
  config.list.sorting = { :name => :asc }
24
25
 
25
- [:name, :exe, :path, :modpath, :logpath, :params, :beta].each do |column|
26
+ [:name, :exe, :path, :modpath, :logpath, :params, :beta, :server].each do |column|
26
27
  config.columns[column].inplace_edit = true
27
28
  end
28
29
  end
@@ -192,7 +192,7 @@ class MainController < ApplicationController
192
192
  end
193
193
 
194
194
  if preset
195
- @msg << "Using preset: #{preset.name}"
195
+ @msg << "Using preset: <a href='/sixconfigs/edit/#{preset.id}' title='#{preset.mods.map{|e| e.name}.join(", ")}'>#{preset.name}</a>"
196
196
  else
197
197
  @msg << "No preset selected!"
198
198
  act(setting, preset, action, server)
@@ -201,21 +201,21 @@ class MainController < ApplicationController
201
201
 
202
202
  unless params["all"]
203
203
  if server
204
- @msg << "Override server: #{server.name}"
204
+ @msg << "Override server: <a href='/queryservers/edit/#{queryserver.id}' title='#{queryserver.mods.map{|e| e.name}.join(", ")}'>#{queryserver.to_label}</a>"
205
205
  else
206
206
  if preset.server
207
207
  server = preset.server
208
- @msg << "Preset server: #{server.name}"
208
+ @msg << "Preset server: <a href='/servers/edit/#{server.id}' title='#{server.mods.map{|e| e.name}.join(", ")}'>#{server.to_label}"
209
209
  end
210
210
  end
211
211
  end
212
212
 
213
213
  if setting
214
- @msg << "Override settings profile: #{setting.name}"
214
+ @msg << "Override settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.real_exe} #{setting.real_params}'>#{setting.label}</a>"
215
215
  else
216
216
  if preset.appsetting
217
217
  setting = preset.appsetting
218
- @msg << "Preset settings profile: #{setting.name}"
218
+ @msg << "Preset settings profile: <a href='/appsettings/edit/#{setting.id}' title='#{setting.real_exe} #{setting.real_params}'>#{setting.label}</a>"
219
219
  end
220
220
  end
221
221
 
@@ -1,7 +1,4 @@
1
1
  class Appsetting < ActiveRecord::Base
2
- # FIXME: This should be done automatically
3
- include Six::Appmanager::Appsetting
4
-
5
2
  has_many :sixconfigs
6
3
  six_guid
7
4
 
@@ -20,6 +17,9 @@ class Appsetting < ActiveRecord::Base
20
17
  DEFAULT_EXE_PATH = ""
21
18
  DEFAULT_BETA_EXE = "arma2.exe"
22
19
  DEFAULT_BETA_EXE_PATH = "beta"
20
+ DEFAULT_SERVER_EXE = "arma2server.exe"
21
+ DEFAULT_SERVER_EXE_PATH = DEFAULT_EXE_PATH
22
+
23
23
  # TODO: Auto beta mod even?
24
24
  DEFAULT_PARAMS = "-showScriptErrors -noSplash -noFilePatching"
25
25
  DEFAULT_MODS_PARAM = "-mod=" # TODO
@@ -49,6 +49,14 @@ class Appsetting < ActiveRecord::Base
49
49
  hash
50
50
  end
51
51
 
52
+ def label
53
+ ar = []
54
+ return self.name unless self.beta || self.server
55
+ ar << "Beta" if self.beta
56
+ ar << "Server" if self.server
57
+ "#{self.name} (#{ar.join(", ")})"
58
+ end
59
+
52
60
  def self.label
53
61
  #self.to_s.sub("Appsetting", "")
54
62
  self::FRIENDLY_NAME
@@ -58,7 +66,107 @@ class Appsetting < ActiveRecord::Base
58
66
  self.to_s.sub("Appsetting", "")
59
67
  end
60
68
 
69
+ def get_exe
70
+ edition = self.detect_edition
71
+ if self.server
72
+ edition::DEFAULT_SERVER_EXE_PATH.size == 0 ? edition::DEFAULT_SERVER_EXE : "#{edition::DEFAULT_SERVER_EXE_PATH}/#{edition::DEFAULT_SERVER_EXE}"
73
+ else
74
+ if self.beta
75
+ edition::DEFAULT_BETA_EXE_PATH.size == 0 ? edition::DEFAULT_BETA_EXE : "#{edition::DEFAULT_BETA_EXE_PATH}/#{edition::DEFAULT_BETA_EXE}"
76
+ else
77
+ edition::DEFAULT_EXE_PATH.size == 0 ? edition::DEFAULT_EXE : "#{edition::DEFAULT_EXE_PATH}/#{edition::DEFAULT_EXE}"
78
+ end
79
+ end
80
+ end
81
+
82
+ def path_by_registry
83
+ self.class::DEFAULT_PATH
84
+ end
85
+
86
+ def real_exe
87
+ if self.exe.nil?
88
+ self.get_exe
89
+ else
90
+ self.exe
91
+ end
92
+ end
93
+
94
+ def real_params
95
+ if self.params.nil?
96
+ self.detect_edition::DEFAULT_PARAMS
97
+ else
98
+ self.params
99
+ end
100
+ end
101
+
102
+ def real_logpath
103
+ if self.logpath.nil?
104
+ case RUBY_PLATFORM
105
+ when /-mingw32$/, /-mswin32$/
106
+ "#{File.join(ENV['USERPROFILE'], 'appdata', 'local', 'arma 2')}"
107
+ else
108
+ nil
109
+ end
110
+ else
111
+ self.logpath
112
+ end
113
+ end
114
+
115
+ def real_path
116
+ if self.path.nil?
117
+ self.path_by_registry
118
+ else
119
+ self.path
120
+ end
121
+ end
122
+
123
+ def real_modpath
124
+ if self.modpath.nil?
125
+ self.real_path
126
+ else
127
+ self.modpath
128
+ end
129
+ end
130
+
131
+ def process_name
132
+ if self.exe
133
+ if self.exe[FOLDER]
134
+ $2
135
+ else
136
+ self.exe
137
+ end
138
+ else
139
+ self.get_exe
140
+ end
141
+ end
142
+
143
+ def processes
144
+ Six::Appmanager.find_process(process_name)
145
+ end
146
+
147
+ def read_logfile
148
+ Six::Appmanager.read_logfile logfile unless logfile.nil?
149
+ end
150
+
151
+ def kill!
152
+ Six::Appmanager.kill_by_name(process_name)
153
+ end
154
+
155
+ def rpt
156
+ process_name[/(.*)\./]
157
+ "#{$1}.rpt"
158
+ end
159
+
160
+ def logfile
161
+ if FileTest.directory? real_logpath
162
+ File.join(real_logpath, rpt) if FileTest.exist?(File.join(real_logpath, rpt))
163
+ else
164
+ nil
165
+ end
166
+ end
167
+
61
168
  def detect_edition
169
+ # TODO: Read the appsetting.exe to figure out an edition, as a static setting by the user?
62
170
  return self.class if self.class::SPECIFIC
63
171
  return self.class unless self.real_path
64
172
  game = nil
@@ -5,6 +5,9 @@ class Arma2OaAppsetting < Arma2Appsetting
5
5
  DEFAULT_EXE = "arma2oa.exe"
6
6
  DEFAULT_BETA_EXE = "arma2oa.exe"
7
7
  DEFAULT_BETA_EXE_PATH = "expansion/beta"
8
+ DEFAULT_SERVER_EXE = "arma2oaserver.exe"
9
+ DEFAULT_SERVER_EXE_PATH = DEFAULT_EXE_PATH
10
+
8
11
  REGKEYS = {"Arma2Oa" => ['SOFTWARE\\Bohemia Interactive Studio\\ArmA 2 OA', 'MAIN']}
9
12
 
10
13
  FAMILY = Hash.new
@@ -14,5 +17,4 @@ class Arma2OaAppsetting < Arma2Appsetting
14
17
  # return self.class unless self.real_path
15
18
  # self.detect_edition
16
19
  # end
17
-
18
20
  end
@@ -2,4 +2,4 @@ class Arma2StAppsetting < Arma2Appsetting
2
2
  FRIENDLY_NAME = "ArmA 2 (Standalone)"
3
3
  SPECIFIC = true
4
4
  REGKEYS = {"Arma2" => ['SOFTWARE\\Bohemia Interactive Studio\\ArmA 2', 'MAIN']}
5
- end
5
+ end
@@ -22,7 +22,7 @@ case RUBY_VERSION
22
22
  end
23
23
 
24
24
  module SixUpdaterWeb
25
- VERSION = "0.19.5"
25
+ VERSION = "0.19.6"
26
26
  COMPONENT = "six-updater-web"
27
27
 
28
28
  DEFAULT_IP = "127.0.0.1" unless defined?(DEFAULT_IP)
@@ -0,0 +1,9 @@
1
+ class AddServerToAppsettings < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :appsettings, :server, :boolean
4
+ end
5
+
6
+ def self.down
7
+ remove_column :appsettings, :server
8
+ end
9
+ end
@@ -9,7 +9,7 @@
9
9
  #
10
10
  # It's strongly recommended to check this file into your version control system.
11
11
 
12
- ActiveRecord::Schema.define(:version => 20100520101655) do
12
+ ActiveRecord::Schema.define(:version => 20100520101656) do
13
13
 
14
14
  create_table "actions", :id => false, :force => true do |t|
15
15
  t.string "id", :limit => 36, :null => false
@@ -31,6 +31,7 @@ ActiveRecord::Schema.define(:version => 20100520101655) do
31
31
  t.string "modpath"
32
32
  t.string "type", :default => "Appsetting"
33
33
  t.boolean "beta"
34
+ t.boolean "server"
34
35
  end
35
36
 
36
37
  create_table "categories", :id => false, :force => true do |t|
@@ -17,18 +17,6 @@ case RUBY_PLATFORM
17
17
  end
18
18
 
19
19
  module Six
20
- module Bla
21
- # Prepared
22
- class << self
23
- attr_accessor :process
24
-
25
- def process
26
- begin
27
- @process rescue nil
28
- end
29
- end
30
- end
31
- end
32
20
  module Appmanager
33
21
  FOLDER = /(.*)\/(.*)/
34
22
 
@@ -136,98 +124,6 @@ module Six
136
124
  'Error while reading logfile!'
137
125
  end
138
126
  end
139
-
140
- module Appsetting
141
- def path_by_registry
142
- self.class::DEFAULT_PATH
143
- end
144
-
145
- def real_exe
146
- if exe.nil?
147
- if self.beta
148
- self.detect_edition::DEFAULT_BETA_EXE_PATH.size == 0 ? self.detect_edition::DEFAULT_BETA_EXE : "#{self.detect_edition::DEFAULT_BETA_EXE_PATH}/#{self.detect_edition::DEFAULT_BETA_EXE}"
149
- else
150
- self.detect_edition::DEFAULT_EXE_PATH.size == 0 ? self.detect_edition::DEFAULT_EXE : "#{self.detect_edition::DEFAULT_EXE_PATH}/#{self.detect_edition::DEFAULT_EXE}"
151
- end
152
- else
153
- exe
154
- end
155
- end
156
-
157
- def real_params
158
- if params.nil?
159
- self.detect_edition::DEFAULT_PARAMS
160
- else
161
- params
162
- end
163
- end
164
-
165
- def real_logpath
166
- if logpath.nil?
167
- case RUBY_PLATFORM
168
- when /-mingw32$/, /-mswin32$/
169
- "#{File.join(ENV['USERPROFILE'], 'appdata', 'local', 'arma 2')}"
170
- else
171
- nil
172
- end
173
- else
174
- logpath
175
- end
176
- end
177
-
178
- def real_path
179
- if path.nil?
180
- path_by_registry
181
- else
182
- self.path
183
- end
184
- end
185
-
186
- def real_modpath
187
- if self.modpath.nil?
188
- self.real_path
189
- else
190
- self.modpath
191
- end
192
- end
193
-
194
- def process_name
195
- if exe
196
- if exe[FOLDER]
197
- $2
198
- else
199
- exe
200
- end
201
- else
202
- 'arma2.exe'
203
- end
204
- end
205
-
206
- def processes
207
- Six::Appmanager.find_process(process_name)
208
- end
209
-
210
- def read_logfile
211
- Six::Appmanager.read_logfile logfile unless logfile.nil?
212
- end
213
-
214
- def kill!
215
- Six::Appmanager.kill_by_name(process_name)
216
- end
217
-
218
- def rpt
219
- process_name[/(.*)\./]
220
- "#{$1}.rpt"
221
- end
222
-
223
- def logfile
224
- if FileTest.directory? real_logpath
225
- File.join(real_logpath, rpt) if FileTest.exist?(File.join(real_logpath, rpt))
226
- else
227
- nil
228
- end
229
- end
230
- end
231
127
  end
232
128
  end
233
129
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 19
8
- - 5
9
- version: 0.19.5
8
+ - 6
9
+ version: 0.19.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Sickboy
@@ -254,6 +254,7 @@ files:
254
254
  - lib/six-updater-web/db/migrate/20100520101653_add_type_to_mods_and_appsettings.rb
255
255
  - lib/six-updater-web/db/migrate/20100520101654_add_beta_to_appsettings.rb
256
256
  - lib/six-updater-web/db/migrate/20100520101655_add_defaults_to_type.rb
257
+ - lib/six-updater-web/db/migrate/20100520101656_add_server_to_appsettings.rb
257
258
  - lib/six-updater-web/db/schema.rb
258
259
  - lib/six-updater-web/doc/README_FOR_APP
259
260
  - lib/six-updater-web/init.rb