gogreen 0.3.0 → 0.4.0

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 (6) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/gogreen.rb +55 -39
  4. data.tar.gz.sig +0 -0
  5. metadata +38 -38
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53af9112f6ec111730b79327994936f1833edce73d882c54701f1ac23f7486bb
4
- data.tar.gz: e58f7887cf38f8052d00754d0028adcfd1c4809fd1220a1bf504356cd09f378e
3
+ metadata.gz: 5230bbcc1ee3b526f051b90b123817c4c54ceb0532e385eea0b70991090b87fd
4
+ data.tar.gz: df4636b8e98891ef553c111f1217018bcbe665dbb7147501c06d393b2a35ba3c
5
5
  SHA512:
6
- metadata.gz: 850180fd618146ccf07cd25502f819e85795a55df79507a10902468526e1d5b3da03130d6de131cafc8b20c24fc78702178a1d42d6e1df491e358b890ef3db0c
7
- data.tar.gz: febe2fcbd1154acb75ad749aca79bfa8e862669bc96e208d6e4c83f5d152ae78dd5f2cfd9da6cfcdbce993b039776ef66399de4e7fc4b3cc0c1f9cd77dfaaece
6
+ metadata.gz: c793d2e2c1cab00e7aac774abf4d56415340c74192d4ced98512333752219acbf08f49f7965850e53e9f6ef83ac45fb316b7acc36851d17230ad418bd0bd0ee6
7
+ data.tar.gz: 95024af2bf44713b79f9c6c019ce41f3ae440095484d2868a6143286a1f02bd9fd86ce2d34db320f09dd0a5565e00cc16a865c36e55fb7a265469570109aed70
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/gogreen.rb CHANGED
@@ -11,15 +11,16 @@ require 'tempfile'
11
11
 
12
12
 
13
13
  class Gg
14
-
15
- def self.call(argsx)
16
- puts GoGreen.new(argsx.first).execute(argsx[1], argsx[2..-1]).to_s
17
- end
18
-
19
- def self.run(argsx)
20
- puts GoGreen.new(argsx.first).execute(argsx[1], argsx[2..-1]).to_s
21
- end
22
-
14
+
15
+ def self.call(argsx)
16
+ puts GoGreen.new(argsx.first).execute(argsx[1], argsx[2..-1]).to_s
17
+ end
18
+
19
+ def self.run(argsx, keepalive: false)
20
+ puts GoGreen.new(argsx.first, keepalive: keepalive)\
21
+ .execute(argsx[1], argsx[2..-1]).to_s
22
+ end
23
+
23
24
  end
24
25
 
25
26
  class GoGreenException < Exception
@@ -27,17 +28,19 @@ end
27
28
 
28
29
  class GoGreen
29
30
 
30
- def initialize(alias_file, site=nil, subdomain=nil, shell_execute: true, rsc: nil)
31
+ def initialize(alias_file, site=nil, subdomain=nil, shell_execute: true,
32
+ rsc: nil, keepalive: false)
31
33
  super()
32
34
 
33
- @shell_execute, @rsc = shell_execute, rsc
35
+ @shell_execute, @rsc, @alias_file = shell_execute, rsc, alias_file
36
+ @keepalive = keepalive
37
+
38
+ buffer = RXFReader.read(alias_file).first
34
39
 
35
- buffer = RXFHelper.read(alias_file, auto: false).first
36
-
37
40
  name = case buffer
38
41
  when /^<\?dynarex/
39
42
  @records = dxread(buffer)
40
- when /^<\?polyrex/
43
+ when /^<\?polyrex/
41
44
  @records, @conf = pxread(buffer, site, subdomain)
42
45
  else
43
46
  raise GoGreenException, 'alias file ' + alias_file + ' not recognised'
@@ -50,62 +53,75 @@ class GoGreen
50
53
 
51
54
  alias_found = @records[alias_name]
52
55
  return 'job not found' unless alias_found
53
-
56
+
54
57
  cmd = alias_found[:body][:command]
55
58
  cmd += ' ' + @conf if @conf
56
-
59
+
57
60
  if cmd[/^rcscript/] then
58
61
 
59
- a = cmd.sub(/^rcscript /,'').split + job_args.map do |x|
60
- x.sub(/^["'](.*)["']$/,'\1')
62
+ a = cmd.sub(/^rcscript /,'').split + job_args.map do |x|
63
+ x.sub(/^["'](.*)["']$/,'\1')
61
64
  end
62
65
 
63
66
  raw_code, args = RScript.new.read a
64
-
67
+
65
68
  begin
66
69
 
67
70
  if @shell_execute then
68
-
71
+
69
72
  a = raw_code.strip.lines
70
73
  a.unshift 'args = ' + args.inspect + "\n\n"
71
74
  lastline = a.pop
72
75
  a.push('puts ' + lastline)
73
76
 
74
- code2 = "$0 = 'gogreen'\n" + a.join.gsub('\"','"').gsub('\#','#')
75
-
76
- file = Tempfile.new('gogreen')
77
- file.write(code2)
77
+ var = '$alias_file = ' + @alias_file.inspect
78
+ code2 = "$0 = 'gogreen'\n" + var +"\n" + a.join.gsub('\"','"')\
79
+ .gsub('\#','#')
80
+
81
+ file = Tempfile.new('gogreen')
82
+ code3 = @keepalive ? apply_handler(code2) : code2
83
+ file.write(code3)
78
84
  file.close
79
85
  puts 'before ruby'
80
86
  r = `ruby #{file.path}`
81
87
  r.strip
82
88
  #pipe = IO.popen("ruby", "w")
83
89
  #pipe.write code2
84
- #pipe.close
85
-
90
+ #pipe.close
91
+
86
92
  else
87
93
 
88
- result = eval(raw_code)
94
+ code3 = @keepalive ? apply_handler(raw_code) : raw_code
95
+ result = eval(code3)
89
96
 
90
97
  end
91
-
98
+
92
99
  rescue
93
100
  ($!).to_s[/^[^\n]+/].to_s
94
- end
95
-
101
+ end
102
+
96
103
  elsif cmd[/^rsc/] and @rsc
97
-
104
+
98
105
  package, job, args = cmd.sub(/^rsc/,'').split + job_args
99
106
  @rsc.send(package.to_sym).send(job.to_sym, *args)
100
-
101
- else
107
+
108
+ else
102
109
  `#{cmd} #{job_args.join(' ')}`
103
- end
104
-
110
+ end
111
+
105
112
  end
106
113
 
107
114
  private
108
115
 
116
+ def apply_handler(s)
117
+
118
+ "begin
119
+ #{s}
120
+ rescue
121
+ retry
122
+ end"
123
+ end
124
+
109
125
  def dxread(s)
110
126
 
111
127
  dx = Dynarex.new
@@ -115,7 +131,7 @@ class GoGreen
115
131
 
116
132
  dx2 = Dynarex.new.parse dx.summary[:include]
117
133
  dx2.records.merge(dx.records)
118
- else
134
+ else
119
135
  dx.records
120
136
  end
121
137
 
@@ -124,7 +140,7 @@ class GoGreen
124
140
 
125
141
  def pxread(buffer, site, subdomain)
126
142
 
127
- px = Polyrex.new
143
+ px = Polyrex.new
128
144
 
129
145
  px.parse buffer
130
146
 
@@ -138,7 +154,7 @@ class GoGreen
138
154
 
139
155
  r
140
156
  end
141
-
157
+
142
158
  end
143
159
 
144
160
  if $0 == __FILE__ then
@@ -146,6 +162,6 @@ if $0 == __FILE__ then
146
162
  alias_file, alias_name, *job_args = ARV
147
163
 
148
164
  gg = GoGreen.new alias_file
149
- gg.execute alias_name, job_args
165
+ gg.execute alias_name, job_args
150
166
 
151
167
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gogreen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwMzMwMDk1MDIzWhcN
15
- MjAwMzI5MDk1MDIzWjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDcpBxs
17
- GhJg28SHOZVdJcnF/7NokB+W2b1hWlS8yX+5zOD3/flQ0vYTlFNNFEQr0goWQOYF
18
- LsqQ3beab6cOm6ZjtRiwDnZx8W1L8BrfCsVEKt0mpELW55gG5PUP+o6Yahss/HkD
19
- ncoDhWO5jBhbcuyS4YdiZ3DAC8+lIRtS8+JYwSQ6VpLQnabdBcnsxWOKuAwbZVvh
20
- wsVQSsW4fcoDoW+wyfKREyiiG4IB51km81DoR/dpo+NUHvim3a6P2kkznWVKfD6j
21
- hHxUFB3JQwJd+fW+T5RfpD68YzJr1yTfXkQhclOuRnIa5sgfemEC49nH9e72R/lp
22
- 0ul8/vzBSWriDmWzu0W9TVv/vYcyv4lvIHwlydMgb6r+CVjgmtvgGF48NEW6LOXf
23
- oOEagOU32XFnU2Bj0PAnkYVUIHkJL+lUSN/KjuUPWynhuhlKrGd9ej7WgZFlBW1q
24
- FacY3A5D1ikqAMaLuWA4FdU56IqIi4aD29C/kuNCDLzw+oNwn7dU6HMRSpkCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUhCILhkr8
26
- rEl2iacFPm0I6MJLVx4wJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjIwMjIyMjA1NzI4WhcN
15
+ MjMwMjIyMjA1NzI4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDezdzj
17
+ EndqLWMQSR0NHJe8yA0H9qmF+bAlqvXE5ePshGQGzcpAlwD79v125UP/DACdd/wc
18
+ J5xfXTL+hxAjd6ZbslDblMBf8takWIhZtsXywBy5PldTFBPpseNDMHfeJ6obSMkJ
19
+ k3wB+S7SzwaS9kdliEnW8cAa0ktt9UA/91OsH6J25KQon1jf7WUUQAoQHuWURW8t
20
+ KMKeMYmNlBbryS/0XJnVYaJfouRUEWFADELOPrND8iWcIRT4kBWJBlCVdbIqThR+
21
+ BQKtaWLnDk2ix1bGxZ9mPuXOBbx1gV6Us3yw4VRWzBZe40JCDK+KzjLpI2iNFNmw
22
+ NdNanQxqp22M9HwS66x13lTECx0QTu7Q694DEZbTu9hRqrEFlifhVhbn5JZYIci8
23
+ rbeJ+sJTHDUbma5bwXGwmS4luCpGPUj/0c4HN0T0YKg7L6WOSThm1GK1w0YuHEmm
24
+ kOVDrzGFvq+9ANXZNl67ytEz5xlh/p8d8KAgz9gklu7gJfxoIG/Qjw7b6vECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUTVm2R2rm
26
+ gePBSfpNfmrXbHmOQwMwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAriKpBxCCs6RPsNDnjGh19zna3nSjHWbAl7uIHiyU
29
- 2tO9gzg99TXCFv4tl57w5qmHQeGgeeDNWDVOzdhIkFm9yns9aIjbTz9bDIqXvT/v
30
- L/S4PoZ9CkVCsSEkCOBXzQxCGNFSp7SKr9j337rFt3h1ytSWffqln+AL7iCYZAaD
31
- 3j+AG8rrKXoNyXWukVjrcB+GpuPIM36Ol79R9MKuOWHICTAg3B4iOGWsgVkk+aI8
32
- 5lftBNg4c5JbXLWiMIn7hxJxv9ElfqmSdF606cOgxs1eCXvYSHh2bd+kfrL8MWD6
33
- Jt6/siR3fyDbAa96JPJNy57LqVicSMPM485I+5aUd7S9zIYJu1hbQIL9Ss+hjcQB
34
- oVvw2C0ONSgbC3G2F3jhLlH19M6BMeGRlJ8f6AFjTNHL15ohC8eaH97LV7Of9G7y
35
- uite3a9z9xiuSz2dCbKcxElh0i3GD/xLXGQzEsQOo1b+4FjfvLqIuR8CqNfzD6gR
36
- H6PDDUc7WjGkwx9msG74XnRv
28
+ BgkqhkiG9w0BAQsFAAOCAYEAcXZkNc+5SJjrQYqoEn3ZBhD8231fUnW4jeTQEQ/u
29
+ GbjdmabP4hEuFI8Nn2bQvqE3l7rNdTfLIfA7hjFNkdUHFV6Zup0bjyqiczoee9lB
30
+ UPFC1+IAXIzEb2fmxYgGJLj7dZgxiWHSHJOgrpapA//CrQtflZf+rIbU2IG6yE16
31
+ rdguqkUhrBUrs22ypjcQVhWYgPKH+Pu3IV1Xy1FJnDsXk+ljmC2BoN4bYUoxmwYD
32
+ oSEBRroFppqyohfEBqYH4PXRbEAOIYdAendr9gEcRp28SB9wkam+NkriEU+m/OJx
33
+ FcL2RWltvpdYc9gvPq65+YDFdvMg33msgeLY1DjVlACvIEh84xTTO9JcV9D2i6f+
34
+ oKuMLy+D9X6GZK1zbZL1iMkgICaonHX+xku3t/HhWHPgq+PPeQRfPr/l7c+3VkwU
35
+ iPi5mvMSYhjRyrqmi4kccwQog3eCjY5QNxO+ACal7fg271yIbBczwhYusmxVIQk+
36
+ s71DHlLeQafzSqs3B7oOCtAW
37
37
  -----END CERTIFICATE-----
38
- date: 2019-03-30 00:00:00.000000000 Z
38
+ date: 2022-02-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rscript
@@ -43,40 +43,40 @@ dependencies:
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.7'
46
+ version: '0.9'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.7.2
49
+ version: 0.9.0
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - "~>"
55
55
  - !ruby/object:Gem::Version
56
- version: '0.7'
56
+ version: '0.9'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 0.7.2
59
+ version: 0.9.0
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: dynarex
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: '1.8'
66
+ version: '1.9'
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: 1.8.18
69
+ version: 1.9.5
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '1.8'
76
+ version: '1.9'
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: 1.8.18
79
+ version: 1.9.5
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: acronym
82
82
  requirement: !ruby/object:Gem::Requirement
@@ -103,20 +103,20 @@ dependencies:
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '1.1'
106
+ version: '1.4'
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: 1.2.1
109
+ version: 1.4.0
110
110
  type: :runtime
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '1.1'
116
+ version: '1.4'
117
117
  - - ">="
118
118
  - !ruby/object:Gem::Version
119
- version: 1.2.1
119
+ version: 1.4.0
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: optparse-simple
122
122
  requirement: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  - !ruby/object:Gem::Version
139
139
  version: 0.4.5
140
140
  description:
141
- email: james@jamesrobertson.eu
141
+ email: digital.robertson@gmail.com
142
142
  executables: []
143
143
  extensions: []
144
144
  extra_rdoc_files: []
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  requirements: []
166
- rubygems_version: 3.0.1
166
+ rubygems_version: 3.2.22
167
167
  signing_key:
168
168
  specification_version: 4
169
169
  summary: Run RSF jobs from the command line using a Dynarex flavoured aliases file.
metadata.gz.sig CHANGED
Binary file