psadmin_plus 0.0.6 → 0.0.7

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/psa +17 -10
  3. data/lib/psadmin_plus.rb +165 -23
  4. metadata +7 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 08053857b9d46dfc80c308ea92265216f267c7da
4
- data.tar.gz: 81df426b700e5bb882bf93f7fd7979fdaa22d03d
3
+ metadata.gz: c5bea0d7536994143d1b28eb77cfa1d4d2d245d1
4
+ data.tar.gz: d018bfdb4ac02509dc9cf391fe6857190bc91097
5
5
  SHA512:
6
- metadata.gz: 87bec5891e6a3bb8952ba9485a24c3ef8ccf05746117ab98b242dcd829a546d6e6bf448ca0f11b6e41d95fd37b7919a306e77e0bc029137ae45e45ab083f42ee
7
- data.tar.gz: 9efbe7b0ccdb11fbca9fc24be60a6bc8d59fd0e1653c06b0f3395b654a039769ce24edf12bf8ad005a404e75e2229489de1aa0cc2f385dc9bcbfeb1a4e47f25b
6
+ metadata.gz: e17768a9ff8ac8352d33b522e691e19a2ad4d1e316156d2d2b2a88e3b47d18278df7233277f948dcf11a5029dcbcdd8cbc98fbedff3240d15fff304266719c21
7
+ data.tar.gz: a48e5720aa77cdf56adf97f7cc55b5cc03907c62d6c68058ea881f7c0ca1a1fb998ba2b335fbd94e90aa9175ff9965564222786c3f8cd8f5fbee6cf1b661ff02
data/bin/psa CHANGED
@@ -4,9 +4,10 @@ require 'psadmin_plus'
4
4
  #require_relative '../lib/psadmin_plus.rb'
5
5
 
6
6
  # options
7
- opts_c = ARGV.shift || "help"
8
- opts_t = ARGV.shift || "all"
9
- opts_d = ARGV.shift || "all"
7
+ opts_c = ARGV.shift || "help"
8
+ opts_t = ARGV.shift || "all"
9
+ opts_d = ARGV.shift || "all"
10
+ opt_cfg = ARGV.shift
10
11
 
11
12
  commands = opts_c.split(',')
12
13
  types = opts_t.split(',')
@@ -15,6 +16,8 @@ domains = opts_d.split(',')
15
16
  if types.include? "all" then types = ['app','prcs','web'] end
16
17
  if domains.include? "all" then all_domains = true end
17
18
 
19
+
20
+
18
21
  # setup environment
19
22
  PS_PSA_CONF = ENV['PS_PSA_CONF'] || "#{ENV['HOME']}/.psa.conf"
20
23
  if File.exists?(PS_PSA_CONF) then
@@ -29,13 +32,17 @@ if File.exists?(PS_PSA_CONF) then
29
32
  end
30
33
 
31
34
  # constants
32
- OS_CONST = os
33
- PS_RUNTIME_USER = ENV['PS_RUNTIME_USER'] || "psadm2"
34
- PS_POOL_MGMT = ENV['PS_POOL_MGMT'] || "on"
35
- PS_HEALTH_FILE = ENV['PS_HEALTH_FILE'] || "health.html"
36
- PS_HEALTH_TIME = ENV['PS_HEALTH_TIME'] || "60"
37
- PS_PSA_SUDO = ENV['PS_PSA_SUDO'] || "on"
38
- PS_PSADMIN_PATH = "#{OS_CONST}" == "linux" ? "#{env('PS_HOME')}/bin" : "cmd /c #{env('PS_HOME')}/appserv"
35
+ OS_CONST = os
36
+ PS_RUNTIME_USER = ENV['PS_RUNTIME_USER'] || "psadm2"
37
+ PS_POOL_MGMT = ENV['PS_POOL_MGMT'] || "on"
38
+ PS_HEALTH_FILE = ENV['PS_HEALTH_FILE'] || "health.html"
39
+ PS_HEALTH_TIME = ENV['PS_HEALTH_TIME'] || "60"
40
+ PS_HEALTH_TEXT = ENV['PS_HEALTH_TEXT'] || "true"
41
+ PS_PSA_SUDO = ENV['PS_PSA_SUDO'] || "on"
42
+ PS_PSADMIN_PATH = "#{OS_CONST}" == "linux" ? "#{env('PS_HOME')}/bin" : "cmd /c #{env('PS_HOME')}/appserv"
43
+ PS_WIN_SERVICES = ENV['PS_WIN_SERVICES'] || "false"
44
+ PS_MULTI_HOME = ENV['PS_MULTI_HOME'] || "false"
45
+ PS_PSA_DEBUG = ENV['PS_PSA_DEBUG'] || "false"
39
46
 
40
47
  # validation
41
48
  # check runtime user
data/lib/psadmin_plus.rb CHANGED
@@ -50,24 +50,49 @@ def do_is_runtime_user_win
50
50
  end
51
51
 
52
52
  def env(var)
53
- result = "#{OS_CONST}" == "linux" ? "${#{var}}" : "$env:#{var}"
53
+ result = "#{OS_CONST}" == "linux" ? "${#{var}}" : "%#{var}%"
54
54
  end
55
55
 
56
- def do_cmd(cmd, print = true)
56
+ def do_cmd(cmd, print = true, powershell = true)
57
57
  case "#{OS_CONST}"
58
58
  when "linux"
59
59
  if do_is_runtime_user_nix
60
+ case "#{PS_PSA_DEBUG}"
61
+ when true
62
+ p "Command: #{cmd}"
63
+ end
60
64
  out = `#{cmd}`
61
65
  else
62
66
  if "#{PS_PSA_SUDO}" == "on"
67
+ case "#{PS_PSA_DEBUG}"
68
+ when true
69
+ p "Command: sudo su - #{PS_RUNTIME_USER} -c '#{cmd}'"
70
+ end
63
71
  out = `sudo su - #{PS_RUNTIME_USER} -c '#{cmd}'`
64
72
  else
65
73
  print "#{PS_RUNTIME_USER} "
74
+ case "#{PS_PSA_DEBUG}"
75
+ when true
76
+ p "Command: su - #{PS_RUNTIME_USER} -c '#{cmd}'"
77
+ end
66
78
  out = `su - #{PS_RUNTIME_USER} -c '#{cmd}'`
67
79
  end
68
80
  end
69
81
  when "windows"
70
- out = `powershell -NoProfile -Command "#{cmd}"`
82
+ case powershell
83
+ when true
84
+ case "#{PS_PSA_DEBUG}"
85
+ when true
86
+ p "Command: powershell -NoProfile -Command \"#{cmd}\""
87
+ end
88
+ out = `powershell -NoProfile -Command "#{cmd}"`
89
+ else
90
+ case "#{PS_PSA_DEBUG}"
91
+ when true
92
+ p "Command: #{cmd}"
93
+ end
94
+ out = `#{cmd}`
95
+ end
71
96
  else
72
97
  out = "Invalid OS"
73
98
  end
@@ -80,32 +105,62 @@ def do_cmd_banner(c,t,d)
80
105
  end
81
106
 
82
107
  def find_apps_nix
83
- apps = do_cmd("find #{env('PS_CFG_HOME')}/appserv/*/psappsrv.ubx",false).split(/\n+/)
108
+ case "#{PS_MULTI_HOME}"
109
+ when "false"
110
+ apps = do_cmd("find #{env('PS_CFG_HOME')}/appserv/*/psappsrv.ubx",false).split(/\n+/)
111
+ else
112
+ apps = do_cmd("find #{PS_MULTI_HOME}/*/appserv/*/psappsrv.ubx",false).split(/\n+/)
113
+ end
84
114
  apps.map! {|app| app.split("/")[-2]}
85
115
  end
86
116
 
87
117
  def find_prcss_nix
88
- prcss = do_cmd("find #{env('PS_CFG_HOME')}/appserv/prcs/*/psprcsrv.ubx",false).split(/\n+/)
118
+ case "#{PS_MULTI_HOME}"
119
+ when "false"
120
+ prcss = do_cmd("find #{env('PS_CFG_HOME')}/appserv/prcs/*/psprcsrv.ubx",false).split(/\n+/)
121
+ else
122
+ prcss = do_cmd("find #{PS_MULTI_HOME}/*/appserv/prcs/*/psprcsrv.ubx",false).split(/\n+/)
123
+ end
89
124
  prcss.map! {|prcs| prcs.split("/")[-2]}
90
125
  end
91
126
 
92
127
  def find_webs_nix
93
- webs = do_cmd("find #{env('PS_CFG_HOME')}/webserv/*/piaconfig -maxdepth 0",false).split(/\n+/)
128
+ case "#{PS_MULTI_HOME}"
129
+ when "false"
130
+ webs = do_cmd("find #{env('PS_CFG_HOME')}/webserv/*/piaconfig -maxdepth 0",false).split(/\n+/)
131
+ else
132
+ webs = do_cmd("find #{PS_MULTI_HOME}/*/webserv/*/piaconfig -maxdepth 0",false).split(/\n+/)
133
+ end
94
134
  webs.map! {|web| web.split("/")[-2]}
95
135
  end
96
136
 
97
137
  def find_apps_win
98
- apps = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/appserv/*/psappsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
138
+ case "#{PS_MULTI_HOME}"
139
+ when "false"
140
+ apps = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/appserv/*/psappsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
141
+ else
142
+ apps = do_cmd("(get-childitem #{PS_MULTI_HOME}/*/appserv/*/psappsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
143
+ end
99
144
  apps.map! {|app| app.split('\\')[-2]}
100
145
  end
101
146
 
102
147
  def find_prcss_win
103
- prcss = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/appserv/prcs/*/psprcsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
148
+ case "#{PS_MULTI_HOME}"
149
+ when "false"
150
+ prcss = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/appserv/prcs/*/psprcsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
151
+ else
152
+ prcss = do_cmd("(get-childitem #{PS_MULTI_HOME}/*/appserv/prcs/*/psprcsrv.ubx | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
153
+ end
104
154
  prcss.map! {|prcs| prcs.split("\\")[-2]}
105
155
  end
106
156
 
107
157
  def find_webs_win
108
- webs = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/webserv/*/piaconfig | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
158
+ case "#{PS_MULTI_HOME}"
159
+ when "false"
160
+ webs = do_cmd("(get-childitem #{env('PS_CFG_HOME')}/webserv/*/piaconfig | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
161
+ else
162
+ webs = do_cmd("(get-childitem #{PS_MULTI_HOME}/*/webserv/*/piaconfig | Format-Table -property FullName -HideTableHeaders | Out-String).Trim()",false).split(/\n+/)
163
+ end
109
164
  webs.map! {|web| web.split("\\")[-2]}
110
165
  end
111
166
 
@@ -133,13 +188,19 @@ def do_list
133
188
  puts "---"
134
189
  print "hostname: " ; do_cmd('hostname')
135
190
  print "ps-home: " ; do_cmd('echo ' + env('PS_HOME'))
136
- print "ps-cfg-home: " ; do_cmd('echo ' + env('PS_CFG_HOME'))
191
+ if PS_MULTI_HOME == "false"
192
+ print "ps-cfg-home: " ; do_cmd('echo ' + env('PS_CFG_HOME'))
193
+ end
137
194
  puts ""
138
195
  puts "PS_RUNTIME_USER: #{PS_RUNTIME_USER}"
139
196
  puts "PS_PSA_SUDO: #{PS_PSA_SUDO}"
140
197
  puts "PS_POOL_MGMT: #{PS_POOL_MGMT}"
141
198
  puts "PS_HEALTH_FILE: #{PS_HEALTH_FILE}"
142
199
  puts "PS_HEALTH_TIME: #{PS_HEALTH_TIME}"
200
+ puts "PS_HEALTH_TEXT: #{PS_HEALTH_TEXT}"
201
+ puts "PS_WIN_SERVICES: #{PS_WIN_SERVICES}"
202
+ puts "PS_MULT_HOME: #{PS_MULTI_HOME}"
203
+ puts "PS_PSA_DEBUG: #{PS_PSA_DEBUG}"
143
204
  puts ""
144
205
  puts "app:"
145
206
  find_apps.each do |a|
@@ -159,11 +220,19 @@ def do_list
159
220
  end
160
221
 
161
222
  def do_summary
223
+ if "#{PS_MULTI_HOME}" != "false"
224
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
225
+ end
226
+
162
227
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -envsummary")
163
228
  #do_status("web","all")
164
229
  end
165
230
 
166
231
  def do_status(type, domain)
232
+ if "#{PS_MULTI_HOME}" != "false"
233
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
234
+ end
235
+
167
236
  case type
168
237
  when "app"
169
238
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -c sstatus -d #{domain}")
@@ -180,31 +249,83 @@ def do_status(type, domain)
180
249
  end
181
250
 
182
251
  def do_start(type, domain)
252
+ if "#{PS_MULTI_HOME}" != "false"
253
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
254
+ end
255
+
256
+ web_service_name = ENV['WEB_SERVICE_NAME'] || "Psft*Pia*#{domain}*"
257
+ app_service_name = ENV['APP_SERVICE_NAME'] || "Psft*App*#{domain}*"
258
+ prcs_service_name = ENV['PRCS_SERVICE_NAME'] || "Psft*Prcs*#{domain}*"
259
+
183
260
  case type
184
261
  when "app"
185
- do_cmd("#{PS_PSADMIN_PATH}/psadmin -c boot -d #{domain}")
262
+ case "#{PS_WIN_SERVICES}"
263
+ when "true"
264
+ do_cmd("start-service #{app_service_name}")
265
+ else
266
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -c boot -d #{domain}")
267
+ end
186
268
  when "prcs"
187
- do_cmd("#{PS_PSADMIN_PATH}/psadmin -p start -d #{domain}")
269
+ case "#{PS_WIN_SERVICES}"
270
+ when "true"
271
+ do_cmd("start-service #{prcs_service_name}")
272
+ else
273
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -p start -d #{domain}")
274
+ end
188
275
  when "web"
189
- do_cmd("#{PS_PSADMIN_PATH}/psadmin -w start -d #{domain}")
276
+ case "#{OS_CONST}"
277
+ when "linux"
278
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -w start -d #{domain}")
279
+ when "windows"
280
+ case "#{PS_WIN_SERVICES}"
281
+ when "true"
282
+ do_cmd("start-service #{web_service_name}")
283
+ else
284
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -w start -d #{domain}", true, false)
285
+ end
286
+ end
287
+ do_pooladd(type,domain)
190
288
  else
191
289
  puts "Invalid type, see psa help"
192
290
  end
193
291
  end
194
292
 
195
293
  def do_stop(type, domain)
294
+ if "#{PS_MULTI_HOME}" != "false"
295
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
296
+ end
297
+
298
+ web_service_name = ENV['WEB_SERVICE_NAME'] || "Psft*Pia*#{domain}*"
299
+ app_service_name = ENV['APP_SERVICE_NAME'] || "Psft*App*#{domain}*"
300
+ prcs_service_name = ENV['PRCS_SERVICE_NAME'] || "Psft*Prcs*#{domain}*"
301
+
196
302
  case type
197
303
  when "app"
198
- do_cmd("#{PS_PSADMIN_PATH}/psadmin -c shutdown -d #{domain}")
304
+ case "#{PS_WIN_SERVICES}"
305
+ when "true"
306
+ do_cmd("stop-service #{app_service_name}")
307
+ else
308
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -c shutdown -d #{domain}")
309
+ end
199
310
  when "prcs"
200
- do_cmd("#{PS_PSADMIN_PATH}/psadmin -p stop -d #{domain}")
311
+ case "#{PS_WIN_SERVICES}"
312
+ when "true"
313
+ do_cmd("stop-service #{prcs_service_name}")
314
+ else
315
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -p stop -d #{domain}")
316
+ end
201
317
  when "web"
318
+ do_poolrm(type,domain)
202
319
  case "#{OS_CONST}"
203
320
  when "linux"
204
321
  do_cmd("${PS_CFG_HOME?}/webserv/#{domain}/bin/stopPIA.sh")
205
322
  when "windows"
206
- # do_cmd("#{PS_PSADMIN_PATH}/psadmin -w shutdown! -d #{domain}".gsub('/','\\'))
207
- do_cmd("cmd /c ${env:PS_CFG_HOME}/webserv/#{domain}/bin/stopPIA.cmd".gsub('/','\\'))
323
+ case "#{PS_WIN_SERVICES}"
324
+ when "true"
325
+ do_cmd("stop-service #{web_service_name}")
326
+ else
327
+ do_cmd("#{PS_PSADMIN_PATH}/psadmin -w shutdown -d #{domain}", true, false)
328
+ end
208
329
  end
209
330
  else
210
331
  puts "Invalid type, see psa help"
@@ -212,19 +333,32 @@ def do_stop(type, domain)
212
333
  end
213
334
 
214
335
  def do_kill(type, domain)
336
+ if "#{PS_MULTI_HOME}" != "false"
337
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
338
+ end
339
+
215
340
  case type
216
341
  when "app"
217
342
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -c shutdown! -d #{domain}")
218
343
  when "prcs"
219
344
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -p kill -d #{domain}")
220
345
  when "web"
221
- return # web kill n/a
346
+ case "#{OS_CONST}"
347
+ when "windows"
348
+ do_cmd("(gwmi win32_process | where {$_.Name -eq 'Java.exe'} | where {$_.CommandLine -match '#{domain}'}).ProcessId -ErrorAction SilentlyContinue | % { stop-process $_ -force } -ErrorAction SilentlyContinue")
349
+ when "linux"
350
+ return #kill n/a
351
+ end
222
352
  else
223
353
  puts "Invalid type, see psa help"
224
354
  end
225
355
  end
226
356
 
227
357
  def do_configure(type, domain)
358
+ if "#{PS_MULTI_HOME}" != "false"
359
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
360
+ end
361
+
228
362
  case type
229
363
  when "app"
230
364
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -c configure -d #{domain}")
@@ -238,6 +372,10 @@ def do_configure(type, domain)
238
372
  end
239
373
 
240
374
  def do_purge(type, domain)
375
+ if "#{PS_MULTI_HOME}" != "false"
376
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
377
+ end
378
+
241
379
  case type
242
380
  when "app"
243
381
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -c purge -d #{domain}")
@@ -249,7 +387,7 @@ def do_purge(type, domain)
249
387
  do_cmd("rm -rf ${PS_CFG_HOME?}/webserv/#{domain}/applications/peoplesoft/PORTAL*/*/cache*/")
250
388
  puts "web cache purged"
251
389
  when "windows"
252
- do_cmd("Remove-Item $(Get-ChildItem ${env:PS_CFG_HOME}/webserv/#{domain}/applications/peoplesoft/PORTAL*/*/cache*/ | ?{ $_.PSIsContainer}) -recurse -force".gsub('/','\\'))
390
+ do_cmd("Remove-Item $(Get-ChildItem ${env:PS_CFG_HOME}/webserv/#{domain}/applications/peoplesoft/PORTAL*/*/cache*/ | ?{ $_.PSIsContainer}) -recurse -force -ErrorAction SilentlyContinue".gsub('/','\\'))
253
391
  end
254
392
  else
255
393
  puts "Invalid type, see psa help"
@@ -257,6 +395,10 @@ def do_purge(type, domain)
257
395
  end
258
396
 
259
397
  def do_flush(type, domain)
398
+ if "#{PS_MULTI_HOME}" != "false"
399
+ ENV['PS_CFG_HOME'] = "#{PS_MULTI_HOME}/#{domain}"
400
+ end
401
+
260
402
  case type
261
403
  when "app"
262
404
  do_cmd("#{PS_PSADMIN_PATH}/psadmin -c cleanipc -d #{domain}")
@@ -284,9 +426,9 @@ end
284
426
 
285
427
  def do_pooladd(type, domain)
286
428
  if PS_POOL_MGMT == "on" then
287
- # Change this function to match your pool member addtion process
429
+ # Change PS_HEALTH_TEXT and PS_HEALTH_FILE variables to match your system
288
430
  puts "Adding web domain to load balanced pool..."
289
- do_cmd("echo 'true' > #{env('PS_CFG_HOME')}/webserv/#{domain}/applications/peoplesoft/PORTAL.war/#{PS_HEALTH_FILE}")
431
+ do_cmd("echo '#{PS_HEALTH_TEXT}' > #{env('PS_CFG_HOME')}/webserv/#{domain}/applications/peoplesoft/PORTAL.war/#{PS_HEALTH_FILE}")
290
432
  sleep(PS_HEALTH_TIME.to_i)
291
433
  puts "...domain added to pool."
292
434
  puts ""
@@ -297,13 +439,13 @@ end
297
439
 
298
440
  def do_poolrm(type,domain)
299
441
  if PS_POOL_MGMT == "on" then
300
- # Change this function to match your pool member removal process
442
+ # Change PS_HEALTH_TEXT and PS_HEALTH_FILE variables to match your system
301
443
  puts "Removing domain from load balanced pool..."
302
444
  case "#{OS_CONST}"
303
445
  when "linux"
304
446
  do_cmd("rm -f #{env('PS_CFG_HOME')}/webserv/#{domain}/applications/peoplesoft/PORTAL.war/#{PS_HEALTH_FILE}")
305
447
  when "windows"
306
- do_cmd("remove-item -force #{env('PS_CFG_HOME')}/webserv/#{domain}/applications/peoplesoft/PORTAL.war/#{PS_HEALTH_FILE}")
448
+ do_cmd("remove-item -force #{env('PS_CFG_HOME')}/webserv/#{domain}/applications/peoplesoft/PORTAL.war/#{PS_HEALTH_FILE} -ErrorAction SilentlyContinue")
307
449
  else
308
450
  puts " badOS - #{OS_CONST}"
309
451
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: psadmin_plus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Benson
8
+ - Dan Iverson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-02-12 00:00:00.000000000 Z
12
+ date: 2018-08-10 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: A psadmin helper tool
14
15
  email: kyle@psadmin.io
@@ -17,8 +18,8 @@ executables:
17
18
  extensions: []
18
19
  extra_rdoc_files: []
19
20
  files:
20
- - lib/psadmin_plus.rb
21
21
  - bin/psa
22
+ - lib/psadmin_plus.rb
22
23
  homepage: https://github.com/psadmin-io/psadmin-plus
23
24
  licenses:
24
25
  - MIT
@@ -29,17 +30,17 @@ require_paths:
29
30
  - lib
30
31
  required_ruby_version: !ruby/object:Gem::Requirement
31
32
  requirements:
32
- - - '>='
33
+ - - ">="
33
34
  - !ruby/object:Gem::Version
34
35
  version: '0'
35
36
  required_rubygems_version: !ruby/object:Gem::Requirement
36
37
  requirements:
37
- - - '>='
38
+ - - ">="
38
39
  - !ruby/object:Gem::Version
39
40
  version: '0'
40
41
  requirements: []
41
42
  rubyforge_project:
42
- rubygems_version: 2.0.14
43
+ rubygems_version: 2.6.12
43
44
  signing_key:
44
45
  specification_version: 4
45
46
  summary: psadmin plus