gogreen 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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