veracode 1.0.0.alpha4 → 1.0.0.alpha9
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.
- checksums.yaml +7 -0
- data/bin/veracode +7 -2
- data/lib/veracode.rb +46 -18
- data/lib/veracode/gems.rb +6 -5
- data/lib/veracode/schema.rb +55 -37
- data/lib/veracode/version.rb +1 -1
- metadata +16 -14
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 948515a4106797409146f98bd9d8c9d742216870
|
4
|
+
data.tar.gz: 263a3f858d7019ced25a402ccaf14fc3ebd6cc67
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2f726fcd3c4932e2dd33aca04d94aff45e3bba0a6126b3a2c889c8a225a4a0373a74905c8a488c34e9b360225fbe4d7ffe0936c8c426379013559f78b3873d76
|
7
|
+
data.tar.gz: d07c8986c6ae1baee810e10161dacecb82f8c344792f6ca589a647a1bc33c7af48e878943ef9c2bfae457adab6c49a00029f415024ca7c168c8a48ed8adee14b
|
data/bin/veracode
CHANGED
@@ -4,8 +4,13 @@ require 'optparse'
|
|
4
4
|
$:.unshift File.expand_path(File.dirname(__FILE__) + "/../lib")
|
5
5
|
$:.unshift Dir.pwd
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
if File.exists?('Gemfile.lock')
|
8
|
+
rails_version = File.open('Gemfile.lock').grep(/^\s*rails\s*\(=\s*[34]/)
|
9
|
+
else
|
10
|
+
rails_version = File.exists?("script/rails") #fallback for rails 3.0
|
11
|
+
end
|
12
|
+
unless rails_version
|
13
|
+
$stderr.puts "Current directory #{File.basename(Dir.pwd).dump} does not appear to be a Rails 3/4 application."
|
9
14
|
exit
|
10
15
|
end
|
11
16
|
APP_PATH = File.expand_path('config/application')
|
data/lib/veracode.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
require 'set'
|
3
3
|
require 'zlib'
|
4
|
-
require 'zip
|
4
|
+
require 'zip'
|
5
5
|
require 'veracode/version'
|
6
6
|
require 'veracode/schema'
|
7
7
|
require 'veracode/gems'
|
@@ -38,6 +38,11 @@ module Veracode
|
|
38
38
|
|
39
39
|
|
40
40
|
def self.init
|
41
|
+
if Gem::Dependency.new('', '~> 2.2.0').match?('', RUBY_VERSION)
|
42
|
+
$stderr.puts "Ruby 2.2 is not supported, please consult the compilation guide for all supported Ruby versions"
|
43
|
+
exit
|
44
|
+
end
|
45
|
+
|
41
46
|
@run_id = Time.now.strftime("%Y%m%d%H%M%S")
|
42
47
|
@archive_dirname = File.join("tmp","veracode-#{@run_id}")
|
43
48
|
@required_libs.merge(["pathname", "set", "zlib", "zip/zip", "veracode"])
|
@@ -153,28 +158,47 @@ module Veracode
|
|
153
158
|
}
|
154
159
|
}
|
155
160
|
rescue Exception => e
|
156
|
-
log_error e.message
|
157
|
-
|
161
|
+
log_error "Unable to write manifest file #{@manifest_filename}: #{e.message}"
|
162
|
+
puts "Unable to write manifest file #{@manifest_filename}: #{e.message}"
|
158
163
|
end
|
159
164
|
|
160
165
|
@errorlog.flush
|
161
166
|
|
162
167
|
begin
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
168
|
+
if Gem.loaded_specs.keys.include?("zipruby")
|
169
|
+
log_error "zipruby gem detected, using it instead of rubyzip for creating archive"
|
170
|
+
@errorlog.flush
|
171
|
+
Zip::Archive.open(@archive_filename, Zip::CREATE) { |ar|
|
172
|
+
@manifest.each { |file|
|
173
|
+
|
174
|
+
if file.start_with?(@archive_dirname)
|
175
|
+
name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
|
176
|
+
else
|
177
|
+
name_in_archive = File.join(APP_NAME, file)
|
178
|
+
end
|
179
|
+
|
180
|
+
puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
|
181
|
+
ar.add_file(name_in_archive, file)
|
182
|
+
}
|
183
|
+
}
|
184
|
+
else
|
185
|
+
Zip::File.open(@archive_filename, Zip::File::CREATE) { |zf|
|
186
|
+
@manifest.each { |file|
|
187
|
+
|
188
|
+
if file.start_with?(@archive_dirname)
|
189
|
+
name_in_archive = file.sub(/^#{@archive_dirname + File::SEPARATOR}/,"")
|
190
|
+
else
|
191
|
+
name_in_archive = File.join(APP_NAME, file)
|
192
|
+
end
|
193
|
+
|
194
|
+
puts "Adding #{file} to archive as #{name_in_archive}" if $options[:verbose]
|
195
|
+
zf.add(name_in_archive, file)
|
196
|
+
}
|
174
197
|
}
|
175
|
-
|
198
|
+
end
|
176
199
|
rescue Exception => e
|
177
|
-
|
200
|
+
log_error "Unable to create archive #{@manifest_filename}: #{e.message}"
|
201
|
+
puts "Unable to create archive #{@manifest_filename}: #{e.message}"
|
178
202
|
exit
|
179
203
|
end
|
180
204
|
|
@@ -227,7 +251,12 @@ module Veracode
|
|
227
251
|
# Helpers
|
228
252
|
def self.cond_require(lib)
|
229
253
|
if @required_libs.add?(lib)
|
230
|
-
|
254
|
+
begin
|
255
|
+
return require lib
|
256
|
+
rescue Exception => e
|
257
|
+
puts "(failed: require #{lib} #{e.message})" if $options[:verbose]
|
258
|
+
log_error "Unable to require #{lib} (#{e.message})"
|
259
|
+
end
|
231
260
|
end
|
232
261
|
return false
|
233
262
|
end
|
@@ -905,7 +934,6 @@ end
|
|
905
934
|
################################################################
|
906
935
|
|
907
936
|
finalize_archive
|
908
|
-
|
909
937
|
pack_manifest
|
910
938
|
cleanup
|
911
939
|
|
data/lib/veracode/gems.rb
CHANGED
@@ -25,24 +25,25 @@ module Veracode
|
|
25
25
|
|
26
26
|
begin
|
27
27
|
File.open(@gems_filename, "wb") {|gems_file|
|
28
|
-
gems_file.puts '<
|
28
|
+
gems_file.puts '<messages>'
|
29
29
|
gems.each {|gem|
|
30
30
|
gems_file << <<GEMS_XML
|
31
|
-
<
|
31
|
+
<message>
|
32
32
|
<platform>ruby</platform>
|
33
33
|
<name>#{gem}</name>
|
34
|
+
<detailed_message>#{gem}</detailed_message>
|
34
35
|
<token>#{gem}</token>
|
35
36
|
<package>rubygem.#{gem}</package>
|
36
37
|
<errorlevel>#{(SupportedGems.include?(gem) ? "info" : "warn" )}</errorlevel>
|
37
38
|
<type>framework_unsupported</type>
|
38
|
-
</
|
39
|
+
</message>
|
39
40
|
GEMS_XML
|
40
41
|
}
|
41
|
-
gems_file.puts '</
|
42
|
+
gems_file.puts '</messages>'
|
42
43
|
}
|
43
44
|
rescue Exception => e
|
44
45
|
log_error "Unable to write to gem list to file #{@gems_filename}: #{e.message}"
|
45
46
|
end
|
46
47
|
|
47
48
|
end
|
48
|
-
end
|
49
|
+
end
|
data/lib/veracode/schema.rb
CHANGED
@@ -1,61 +1,79 @@
|
|
1
1
|
module Veracode
|
2
2
|
module ActiveRecord
|
3
3
|
class Model
|
4
|
+
|
4
5
|
attr_reader :name, :attributes
|
6
|
+
|
5
7
|
def initialize(name)
|
6
8
|
@name = name
|
7
9
|
@attributes = Array.new
|
8
10
|
end
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@attributes << [name, :date]
|
17
|
-
end
|
18
|
-
def datetime(name, *rest)
|
19
|
-
@attributes << [name, :datetime]
|
20
|
-
end
|
21
|
-
def decimal(name, *rest)
|
22
|
-
@attributes << [name, :decimal]
|
23
|
-
end
|
24
|
-
def float(name, *rest)
|
25
|
-
@attributes << [name, :float]
|
26
|
-
end
|
27
|
-
def integer(name, *rest)
|
28
|
-
@attributes << [name, :integer]
|
29
|
-
end
|
30
|
-
def primary_key(name, *rest)
|
31
|
-
@attributes << [name, :primary_key]
|
32
|
-
end
|
33
|
-
def string(name, *rest)
|
34
|
-
@attributes << [name, :string]
|
35
|
-
end
|
36
|
-
def text(name, *rest)
|
37
|
-
@attributes << [name, :text]
|
38
|
-
end
|
39
|
-
def time(name, *rest)
|
40
|
-
@attributes << [name, :time]
|
41
|
-
end
|
42
|
-
def timestamp(name, *rest)
|
43
|
-
@attributes << [name, :timestamp]
|
11
|
+
|
12
|
+
%w(
|
13
|
+
binary boolean date datetime decimal float integer primary_key string text time timestamp
|
14
|
+
).map(&:to_sym).each do |meth|
|
15
|
+
define_method(meth) do |name, *rest|
|
16
|
+
@attributes << [name, meth]
|
17
|
+
end
|
44
18
|
end
|
19
|
+
|
45
20
|
end
|
46
21
|
|
47
22
|
class Schema
|
23
|
+
|
48
24
|
def self.define(info={}, &block)
|
49
25
|
Schema.new.instance_eval(&block)
|
50
26
|
end
|
27
|
+
|
51
28
|
def create_table(name, options={})
|
52
29
|
td = Model.new(name)
|
53
30
|
td.integer('id')
|
54
31
|
yield td if block_given?
|
55
32
|
Veracode.add_to_archive Veracode.format_variable("@@#{td.name}", td.attributes, 'class')
|
56
33
|
end
|
57
|
-
|
58
|
-
|
34
|
+
|
35
|
+
# ActiveRecord::ConnectionAdapters::SchemaStatements
|
36
|
+
# http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html
|
37
|
+
def add_column(table_name, column_name, type, options = {}) ; end
|
38
|
+
def add_index(table_name, column_name, options = {}) ; end
|
39
|
+
def add_index_options(table_name, column_name, options = {}) ; end
|
40
|
+
def add_index_sort_order(option_strings, column_names, options = {}) ; end
|
41
|
+
def add_timestamps(table_name) ; end
|
42
|
+
|
43
|
+
# ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt
|
44
|
+
# http://rubydoc.info/gems/activerecord-oracle_enhanced-adapter/ActiveRecord/ConnectionAdapters/OracleEnhancedSchemaStatementsExt
|
45
|
+
def add_foreign_key(from_table, to_table, options = {})
|
46
|
+
Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_foreign_key called"
|
47
|
+
end
|
48
|
+
def add_primary_key_trigger(table_name, options = {})
|
49
|
+
Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_primary_key_trigger called"
|
50
|
+
end
|
51
|
+
def add_synonym(name, table_name, options = {})
|
52
|
+
Veracode::log_error "schema.rb: ActiveRecord::ConnectionAdapters::OracleEnhancedSchemaStatementsExt#add_synonym called"
|
53
|
+
end
|
54
|
+
# def disable_referential_integrity(&block) ; end
|
55
|
+
# def foreign_key_definition(to_table, options = {}) ; end
|
56
|
+
# def foreign_keys(table_name) ; end
|
57
|
+
# def remove_foreign_key(from_table, options) ; end
|
58
|
+
# def remove_synonym(name) ; end
|
59
|
+
# def supports_foreign_keys? ; end
|
60
|
+
# def synonyms ; end
|
61
|
+
|
62
|
+
# TODO: Return only if real receiver would respond to method
|
63
|
+
# def method_missing(meth, *args, &block)
|
64
|
+
# if ActiveRecord::ConnectionAdapters::AbstractAdapter.instance_methods.include?(meth)
|
65
|
+
# log_error "Unhandled method: #{meth} args: #{args.to_s}"
|
66
|
+
# nil
|
67
|
+
# else
|
68
|
+
# super
|
69
|
+
# end
|
70
|
+
# end
|
71
|
+
# def respond_to_everything(meth)
|
72
|
+
# log_error "Unhandled respond_to? for: #{meth}" unless really_respond_to?(meth)
|
73
|
+
# true
|
74
|
+
# end
|
75
|
+
# alias_method :really_respond_to?, :respond_to?
|
76
|
+
# alias_method :respond_to?, :respond_to_everything
|
59
77
|
end
|
60
78
|
end
|
61
79
|
|
data/lib/veracode/version.rb
CHANGED
metadata
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: veracode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
5
|
-
prerelease: 6
|
4
|
+
version: 1.0.0.alpha9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Veracode
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2017-03-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rubyzip
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
19
|
+
version: '1.0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
25
27
|
description: Prepares your Ruby on Rails app for submission to Veracode.
|
26
28
|
email: devcontact@veracode.com
|
27
29
|
executables:
|
@@ -36,27 +38,27 @@ files:
|
|
36
38
|
- lib/veracode/version.rb
|
37
39
|
homepage: http://veracode.com/
|
38
40
|
licenses: []
|
41
|
+
metadata: {}
|
39
42
|
post_install_message:
|
40
43
|
rdoc_options: []
|
41
44
|
require_paths:
|
42
45
|
- lib
|
43
46
|
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
47
|
requirements:
|
46
|
-
- -
|
48
|
+
- - ">="
|
47
49
|
- !ruby/object:Gem::Version
|
48
50
|
version: 1.9.3.0
|
49
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
52
|
requirements:
|
52
|
-
- -
|
53
|
+
- - ">"
|
53
54
|
- !ruby/object:Gem::Version
|
54
55
|
version: 1.3.1
|
55
56
|
requirements: []
|
56
57
|
rubyforge_project:
|
57
|
-
rubygems_version:
|
58
|
+
rubygems_version: 2.5.1
|
58
59
|
signing_key:
|
59
|
-
specification_version:
|
60
|
+
specification_version: 4
|
60
61
|
summary: Command line tool for preparing your Ruby on Rails app for submission to
|
61
62
|
Veracode
|
62
63
|
test_files: []
|
64
|
+
has_rdoc:
|