webcmd 0.0.1 → 0.0.2

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7bbe36a582b4e131b0ebe9c642c1da871e00ab57
4
+ data.tar.gz: 1b3b9e1faf9b7ef0a9d51520f2f5dc9df8609ad4
5
+ SHA512:
6
+ metadata.gz: bf1f168133242212f858bd7a68d65a17e2fe467c3d41ab869292c9dc3f32f81c1982b6fb51c1901ae1493ad6e1dafdf2753b6d90bb0d62dc063f2c4a19eb5912
7
+ data.tar.gz: 0364a630a9d63f031dfda758a519dcc532e0039833248ea4bd2331c419bdd6a3535fe370dc9116bcdd1a9e2176dc25becbab78788d6e9c55540ff739fedd31b4
data/Gemfile CHANGED
@@ -1,2 +1,2 @@
1
- source :rubygems
1
+ source "https://rubygems.org"
2
2
  gemspec
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webcmd (0.0.1)
4
+ webcmd (0.0.2)
5
5
  puma (~> 1.6.3)
6
6
  rack (~> 1.4.1)
7
7
 
8
8
  GEM
9
- remote: http://rubygems.org/
9
+ remote: https://rubygems.org/
10
10
  specs:
11
11
  puma (1.6.3)
12
12
  rack (~> 1.2)
@@ -8,8 +8,9 @@ module Webcmd
8
8
  end
9
9
 
10
10
  def call(env)
11
- if token_valid?(env)
12
- [200, {'Content-Type' => 'text/plain'}, CommandRunner.new(@command)]
11
+ req = Rack::Request.new(env)
12
+ if token_valid?(req)
13
+ [200, {'Content-Type' => 'text/plain'}, CommandRunner.new(@command, req.params)]
13
14
  else
14
15
  [403, {'Content-Type' => 'text/plain'}, ['Token invalid']]
15
16
  end
@@ -17,8 +18,7 @@ module Webcmd
17
18
 
18
19
  private
19
20
 
20
- def token_valid?(env)
21
- req = Rack::Request.new(env)
21
+ def token_valid?(req)
22
22
  req.params['token'] == @token
23
23
  end
24
24
  end
@@ -1,7 +1,8 @@
1
1
  module Webcmd
2
2
  class CommandRunner
3
- def initialize(command)
3
+ def initialize(command, params = {})
4
4
  @command = command
5
+ @params = params
5
6
  end
6
7
 
7
8
  def each(&block)
@@ -15,7 +16,11 @@ module Webcmd
15
16
  private
16
17
 
17
18
  def shell_env
18
- Hash[ENV.keys.grep(/^BUNDLE_/).map { |k| [k, nil] }]
19
+ Hash[ENV.keys.grep(/^BUNDLE_/).map { |k| [k, nil] }].tap do |env|
20
+ @params.each_pair do |name, value|
21
+ env["WEBCMD_#{name.upcase}"] = value
22
+ end
23
+ end
19
24
  end
20
25
  end
21
26
  end
@@ -10,7 +10,7 @@ module Webcmd
10
10
  opts.banner = "Usage: webcmd [options]"
11
11
 
12
12
  opts.on '-o', '--host HOST', 'listen on HOST (default: 0.0.0.0)' do |host|
13
- options[:Host] = host
13
+ @options[:Host] = host
14
14
  end
15
15
 
16
16
  opts.on '-p', '--port PORT', 'use PORT (default: 9292)' do |port|
@@ -1,3 +1,3 @@
1
1
  module Webcmd
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -49,5 +49,11 @@ module Webcmd
49
49
  get '/', token: '1234'
50
50
  assert_equal 403, last_response.status
51
51
  end
52
+
53
+ def test_pass_env_var
54
+ options[:command] = 'echo $WEBCMD_TEST_VAR'
55
+ get '/', test_var: 'test'
56
+ assert_equal 'test', last_response.body.strip
57
+ end
52
58
  end
53
59
  end
metadata CHANGED
@@ -1,78 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webcmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sergey Nartimov
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
11
+ date: 2014-10-16 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- type: :runtime
16
- version_requirements: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: 1.4.1
22
- prerelease: false
23
14
  name: rack
24
15
  requirement: !ruby/object:Gem::Requirement
25
- none: false
26
16
  requirements:
27
- - - ~>
17
+ - - "~>"
28
18
  - !ruby/object:Gem::Version
29
19
  version: 1.4.1
30
- - !ruby/object:Gem::Dependency
31
20
  type: :runtime
21
+ prerelease: false
32
22
  version_requirements: !ruby/object:Gem::Requirement
33
- none: false
34
23
  requirements:
35
- - - ~>
24
+ - - "~>"
36
25
  - !ruby/object:Gem::Version
37
- version: 1.6.3
38
- prerelease: false
26
+ version: 1.4.1
27
+ - !ruby/object:Gem::Dependency
39
28
  name: puma
40
29
  requirement: !ruby/object:Gem::Requirement
41
- none: false
42
30
  requirements:
43
- - - ~>
31
+ - - "~>"
44
32
  - !ruby/object:Gem::Version
45
33
  version: 1.6.3
46
- - !ruby/object:Gem::Dependency
47
- type: :development
34
+ type: :runtime
35
+ prerelease: false
48
36
  version_requirements: !ruby/object:Gem::Requirement
49
- none: false
50
37
  requirements:
51
- - - ! '>='
38
+ - - "~>"
52
39
  - !ruby/object:Gem::Version
53
- version: '0'
54
- prerelease: false
40
+ version: 1.6.3
41
+ - !ruby/object:Gem::Dependency
55
42
  name: rake
56
43
  requirement: !ruby/object:Gem::Requirement
57
- none: false
58
44
  requirements:
59
- - - ! '>='
45
+ - - ">="
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
48
  type: :development
49
+ prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
- none: false
66
51
  requirements:
67
- - - ! '>='
52
+ - - ">="
68
53
  - !ruby/object:Gem::Version
69
54
  version: '0'
70
- prerelease: false
55
+ - !ruby/object:Gem::Dependency
71
56
  name: rack-test
72
57
  requirement: !ruby/object:Gem::Requirement
73
- none: false
74
58
  requirements:
75
- - - ! '>='
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  description: Run shell command through HTTP
@@ -83,7 +74,7 @@ executables:
83
74
  extensions: []
84
75
  extra_rdoc_files: []
85
76
  files:
86
- - .gitignore
77
+ - ".gitignore"
87
78
  - Gemfile
88
79
  - Gemfile.lock
89
80
  - MIT-LICENSE
@@ -102,33 +93,26 @@ files:
102
93
  - webcmd.gemspec
103
94
  homepage: https://github.com/brainspec/webcmd
104
95
  licenses: []
96
+ metadata: {}
105
97
  post_install_message:
106
98
  rdoc_options: []
107
99
  require_paths:
108
100
  - lib
109
101
  required_ruby_version: !ruby/object:Gem::Requirement
110
- none: false
111
102
  requirements:
112
- - - ! '>='
103
+ - - ">="
113
104
  - !ruby/object:Gem::Version
114
- segments:
115
- - 0
116
- hash: 2381652511498473721
117
105
  version: '0'
118
106
  required_rubygems_version: !ruby/object:Gem::Requirement
119
- none: false
120
107
  requirements:
121
- - - ! '>='
108
+ - - ">="
122
109
  - !ruby/object:Gem::Version
123
- segments:
124
- - 0
125
- hash: 2381652511498473721
126
110
  version: '0'
127
111
  requirements: []
128
112
  rubyforge_project:
129
- rubygems_version: 1.8.23
113
+ rubygems_version: 2.2.2
130
114
  signing_key:
131
- specification_version: 3
115
+ specification_version: 4
132
116
  summary: Run shell command through HTTP
133
117
  test_files:
134
118
  - test/app_test.rb