webcmd 0.0.1 → 0.0.2

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