hakiri 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ capybara-*.html
16
16
  **.orig
17
17
  *.gem
18
18
  /manifest.json
19
+ .ruby-version
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hakiri (0.3.0)
4
+ hakiri (0.3.1)
5
5
  active_support
6
6
  commander
7
7
  i18n
8
+ json_pure
8
9
  rake
9
10
  rest-client
10
11
  terminal-table
@@ -19,6 +20,7 @@ GEM
19
20
  highline (~> 1.6.11)
20
21
  highline (1.6.19)
21
22
  i18n (0.6.4)
23
+ json_pure (1.8.0)
22
24
  mime-types (1.23)
23
25
  rake (10.1.0)
24
26
  rest-client (1.6.7)
data/README.md CHANGED
@@ -27,7 +27,7 @@ Hakiri CLI is a Ruby gem that can be installed by
27
27
  $ gem install hakiri
28
28
  ~~~
29
29
 
30
- After it's installed, restart your command line and you should be good to go.
30
+ After it's installed, restart your command line and you should be good to go. Hakiri supports Ruby 1.8.7, 1.9.x and 2.0.x.
31
31
 
32
32
  ## Test Your System in 2 Minutes
33
33
 
@@ -121,4 +121,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
121
121
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
122
122
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
123
123
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
124
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
124
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/bin/hakiri CHANGED
@@ -26,7 +26,7 @@ command 'system:scan' do |c|
26
26
  c.option '--manifest STRING', String, 'Path to your manifest JSON file'
27
27
 
28
28
  c.action do |args, options|
29
- options.default manifest: './manifest.json'
29
+ options.default :manifest => './manifest.json'
30
30
 
31
31
  cli = Hakiri::System.new(args, options)
32
32
  cli.scan
@@ -42,8 +42,8 @@ command 'system:sync' do |c|
42
42
  c.option '--force', 'Force syncing without asking for it first.'
43
43
 
44
44
  c.action do |args, options|
45
- options.default manifest: './manifest.json'
46
- options.default project: nil
45
+ options.default :manifest => './manifest.json'
46
+ options.default :project => nil
47
47
  cli = Hakiri::System.new(args, options)
48
48
  cli.sync
49
49
  end
@@ -20,4 +20,5 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency 'active_support'
21
21
  s.add_dependency 'i18n'
22
22
  s.add_dependency 'rest-client'
23
+ s.add_dependency 'json_pure'
23
24
  end
@@ -4,6 +4,7 @@ end
4
4
 
5
5
  require 'terminal-table'
6
6
  require 'open-uri'
7
+ require 'json'
7
8
 
8
9
  require 'hakiri/cli/cli'
9
10
  require 'hakiri/cli/system'
@@ -8,7 +8,7 @@ class Hakiri::Manifest < Hakiri::Cli
8
8
  FileUtils::copy_file "#{File.dirname(__FILE__)}/manifest.json", "#{Dir.pwd}/manifest.json"
9
9
  File.chmod 0755, "#{Dir.pwd}/manifest.json"
10
10
  say '-----> Generating the manifest file...'
11
- say "-----> Generated the manifest file in #{Dir.pwd}/manifest.json"
12
- say "-----> Edit it and run \"hakiri system:scan\""
11
+ say " Generated the manifest file in #{Dir.pwd}/manifest.json"
12
+ say " Edit it and run \"hakiri system:scan\""
13
13
  end
14
14
  end
@@ -19,7 +19,7 @@ class Hakiri::System < Hakiri::Cli
19
19
 
20
20
  # GETTING VULNERABILITIES
21
21
  say '-----> Searching for vulnerabilities...'
22
- params = ({ technologies: @stack.technologies }.to_param)
22
+ params = ({ :technologies => @stack.technologies }.to_param)
23
23
  response = @http_client.get_issues(params)
24
24
 
25
25
  if response[:errors]
@@ -79,7 +79,7 @@ class Hakiri::System < Hakiri::Cli
79
79
  end
80
80
 
81
81
  # CHECK VERSIONS ON THE SERVER
82
- params = ({ project_id: @options.project, technologies: @stack.technologies }.to_param)
82
+ params = ({ :project_id => @options.project, :technologies => @stack.technologies }.to_param)
83
83
  say '-----> Checking software versions on www.hakiriup.com...'
84
84
  response = @http_client.check_versions_diff(params)
85
85
 
@@ -92,7 +92,7 @@ class Hakiri::System < Hakiri::Cli
92
92
  @stack.technologies = {}
93
93
  response[:diffs].each do |diff|
94
94
  if diff[:success]
95
- @stack.technologies[diff[:technology][:slug]] = { version: diff[:system_version] }
95
+ @stack.technologies[diff[:technology][:slug]] = { :version => diff[:system_version] }
96
96
 
97
97
  if diff[:hakiri_version]
98
98
  if diff[:system_version_newer]
@@ -115,7 +115,7 @@ class Hakiri::System < Hakiri::Cli
115
115
 
116
116
  if update or @options.force
117
117
  say '-----> Syncing versions with www.hakiriup.com...'
118
- params = ({ project_id: @options.project, technologies: @stack.technologies }.to_param)
118
+ params = ({ :project_id => @options.project, :technologies => @stack.technologies }.to_param)
119
119
  response = @http_client.sync_project_versions(response[:project][:id], params)
120
120
 
121
121
  if response[:errors]
@@ -193,7 +193,7 @@ class Hakiri::System < Hakiri::Cli
193
193
  end
194
194
 
195
195
  say '-----> Searching for vulnerabilities...'
196
- params = ({ technologies: @stack.technologies }.to_param)
196
+ params = ({ :technologies => @stack.technologies }.to_param)
197
197
  response = @http_client.get_issues(params)
198
198
 
199
199
  if response[:errors]
@@ -209,7 +209,6 @@ class Hakiri::System < Hakiri::Cli
209
209
  response[:technologies].each do |technology|
210
210
  unless technology[:issues_count] == 0
211
211
  say "! Found #{technology[:issues_count].to_i} #{'vulnerability'.pluralize if technology[:issues_count].to_i != 1} in #{technology[:name]} #{technology[:version]}"
212
- puts ' '
213
212
  end
214
213
  end
215
214
 
@@ -27,9 +27,9 @@ class Hakiri::HttpClient
27
27
  RestClient.get "#{@api_url}/issues.json?auth_token=#{@auth_token}&#{params}" do |response, request, result, &block|
28
28
  case response.code
29
29
  when 200
30
- JSON.parse(response.to_str, symbolize_names: true)
30
+ JSON.parse(response.to_str, :symbolize_names => true)
31
31
  else
32
- { errors: [response.code] }
32
+ { :errors => [response.code] }
33
33
  end
34
34
  end
35
35
  end
@@ -47,9 +47,9 @@ class Hakiri::HttpClient
47
47
  RestClient.get "#{@api_url}/versions/diffs.json?auth_token=#{@auth_token}&#{params}" do |response, request, result, &block|
48
48
  case response.code
49
49
  when 200
50
- JSON.parse(response.to_str, symbolize_names: true)
50
+ JSON.parse(response.to_str, :symbolize_names => true)
51
51
  else
52
- { errors: [response.code] }
52
+ { :errors => [response.code] }
53
53
  end
54
54
  end
55
55
  end
@@ -67,9 +67,9 @@ class Hakiri::HttpClient
67
67
  RestClient.put "#{@api_url}/projects/#{project_id}.json?auth_token=#{@auth_token}", params do |response, request, result, &block|
68
68
  case response.code
69
69
  when 200
70
- JSON.parse(response.to_str, symbolize_names: true)
70
+ JSON.parse(response.to_str, :symbolize_names => true)
71
71
  else
72
- { errors: [response.code] }
72
+ { :errors => [response.code] }
73
73
  end
74
74
  end
75
75
  end
@@ -42,51 +42,51 @@ class Hakiri::Stack
42
42
  # Is Memcached present?
43
43
  #
44
44
  def build_from_input(server, extra_server, db, redis, memcached)
45
- @technologies['ruby'] = { command: @default_command }
46
- @technologies['ruby-on-rails'] = { command: @default_command }
45
+ @technologies['ruby'] = { :command => @default_command }
46
+ @technologies['ruby-on-rails'] = { :command => @default_command }
47
47
 
48
48
  case server
49
49
  when 1
50
- @technologies['unicorn'] = { command: @default_command }
50
+ @technologies['unicorn'] = { :command => @default_command }
51
51
  when 2
52
- @technologies['phusion-passenger'] = { command: @default_command }
52
+ @technologies['phusion-passenger'] = { :command => @default_command }
53
53
  when 3
54
- @technologies['thin'] = { command: @default_command }
54
+ @technologies['thin'] = { :command => @default_command }
55
55
  when 4
56
- @technologies['trinidad'] = { command: @default_command }
57
- @technologies['java'] = { command: @default_command }
58
- @technologies['apache-tomcat'] = { command: @default_command }
59
- @technologies['jruby'] = { command: @default_command }
56
+ @technologies['trinidad'] = { :command => @default_command }
57
+ @technologies['java'] = { :command => @default_command }
58
+ @technologies['apache-tomcat'] = { :command => @default_command }
59
+ @technologies['jruby'] = { :command => @default_command }
60
60
  else
61
61
  nil
62
62
  end
63
63
 
64
64
  case extra_server
65
65
  when 1
66
- @technologies['apache'] = { command: @default_command }
66
+ @technologies['apache'] = { :command => @default_command }
67
67
  when 2
68
- @technologies['nginx'] = { command: @default_command }
68
+ @technologies['nginx'] = { :command => @default_command }
69
69
  when 3
70
- @technologies['apache'] = { command: @default_command }
71
- @technologies['nginx'] = { command: @default_command }
70
+ @technologies['apache'] = { :command => @default_command }
71
+ @technologies['nginx'] = { :command => @default_command }
72
72
  else
73
73
  nil
74
74
  end
75
75
 
76
76
  case db
77
77
  when 1
78
- @technologies['mysql'] = { command: @default_command }
78
+ @technologies['mysql'] = { :command => @default_command }
79
79
  when 2
80
- @technologies['postgres'] = { command: @default_command }
80
+ @technologies['postgres'] = { :command => @default_command }
81
81
  when 3
82
- @technologies['mongodb'] = { command: @default_command }
82
+ @technologies['mongodb'] = { :command => @default_command }
83
83
  else
84
84
  nil
85
85
  end
86
86
 
87
- @technologies['redis'] = { command: @default_command } if redis
87
+ @technologies['redis'] = { :command => @default_command } if redis
88
88
 
89
- @technologies['memcached'] = { command: @default_command } if memcached
89
+ @technologies['memcached'] = { :command => @default_command } if memcached
90
90
  end
91
91
 
92
92
  #
@@ -1,3 +1,3 @@
1
1
  module Hakiri
2
- VERSION = '0.3.1'
2
+ VERSION = '0.3.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hakiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-27 00:00:00.000000000 Z
12
+ date: 2013-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -107,6 +107,22 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: json_pure
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
110
126
  description: Hakiri is a CLI for www.hakiriup.com—a cloud security platform for Ruby
111
127
  on Rails apps.
112
128
  email: vasinov@me.com