license_auto 0.1.1.2 → 0.1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.gitmodules +3 -0
- data/.travis.yml +9 -2
- data/README.md +10 -8
- data/lib/license_auto/exceptions.rb +10 -0
- data/lib/license_auto/license/frequency.rb +1 -1
- data/lib/license_auto/license/readme.rb +21 -2
- data/lib/license_auto/license/similarity.rb +4 -3
- data/lib/license_auto/license_info_wrapper.rb +16 -0
- data/lib/license_auto/matcher.rb +14 -4
- data/lib/license_auto/package.rb +29 -15
- data/lib/license_auto/package_manager.rb +6 -2
- data/lib/license_auto/package_manager/bundler.rb +10 -6
- data/lib/license_auto/package_manager/gemfury.rb +2 -0
- data/lib/license_auto/package_manager/git_module.rb +73 -0
- data/lib/license_auto/package_manager/golang.rb +155 -0
- data/lib/license_auto/package_manager/gradle.rb +145 -0
- data/lib/license_auto/package_manager/maven.rb +133 -0
- data/lib/license_auto/package_manager/npm.rb +117 -1
- data/lib/license_auto/package_manager/pip.rb +8 -2
- data/lib/license_auto/repo.rb +51 -3
- data/lib/license_auto/source_code_server.rb +13 -0
- data/lib/license_auto/var/golang_std_libs.rb +160 -0
- data/lib/license_auto/version.rb +1 -1
- data/lib/license_auto/website.rb +1 -0
- data/lib/license_auto/website/cocoapods_org.rb +10 -0
- data/lib/license_auto/website/github_com.rb +43 -18
- data/lib/license_auto/website/homepage_spider.rb +56 -0
- data/lib/license_auto/website/maven_central_repository.rb +258 -0
- data/lib/license_auto/website/npm_registry.rb +178 -0
- data/lib/license_auto/website/ruby_gems_org.rb +119 -8
- data/license_auto.gemspec +1 -0
- data/package.json +30 -0
- metadata +25 -40
- data/lib/license_auto/package_manager/golang_stdlibs.rb +0 -161
- data/remove/api.rb +0 -60
- data/remove/api/bitbucket.rb +0 -142
- data/remove/api/code_google_com.rb +0 -66
- data/remove/api/excel_export.rb +0 -189
- data/remove/api/gem_data.rb +0 -30
- data/remove/api/git_kernel_org.rb +0 -59
- data/remove/api/github.rb +0 -376
- data/remove/api/go_pkg_in.rb +0 -41
- data/remove/api/golang_org.rb +0 -63
- data/remove/api/google_source_com.rb +0 -68
- data/remove/api/gradle2.rb +0 -41
- data/remove/api/helper.rb +0 -26
- data/remove/api/j_center.rb +0 -23
- data/remove/api/maven_central_repository.rb +0 -192
- data/remove/api/mq.rb +0 -30
- data/remove/api/npm_registry.rb +0 -169
- data/remove/api/pattern.rb +0 -33
- data/remove/api/remote_source_package.rb +0 -319
- data/remove/api/spider.rb +0 -47
- data/remove/cloner.rb +0 -154
- data/remove/db.rb +0 -267
- data/remove/license_auto +0 -4
- data/remove/misc.rb +0 -131
- data/remove/mq_pack.rb +0 -219
- data/remove/mq_repo.rb +0 -106
- data/remove/parser/gemfile_parser.rb +0 -221
- data/remove/parser/golang_parser.rb +0 -104
- data/remove/parser/gradle_parser.rb +0 -141
- data/remove/parser/manifest_parser.rb +0 -66
- data/remove/parser/maven_parser.rb +0 -91
- data/remove/parser/npm_parser.rb +0 -82
- data/remove/parser/pip_parser.rb +0 -1
- data/remove/parser/rebar_parser.rb +0 -61
- data/remove/recorder.rb +0 -184
- data/remove/script/apt-get.deps.sh +0 -37
- data/remove/script/debian_dpkg_list.sh +0 -2
- data/remove/script/rubygems.org.importdb.sh +0 -22
@@ -1,66 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
|
-
require_relative '../../lib/db'
|
4
|
-
require_relative '../api/pattern'
|
5
|
-
|
6
|
-
class ManifestParser
|
7
|
-
def initialize(repo_filepath, repo_id)
|
8
|
-
@repo_filepath = repo_filepath
|
9
|
-
@manifest_file_list = []
|
10
|
-
ymls = api_get_repo_manifest_file_list(repo_id).values[0][0]
|
11
|
-
if ymls != nil
|
12
|
-
@manifest_file_list = ymls.gsub(' ', '').split(',')
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def start
|
17
|
-
packs = []
|
18
|
-
$plog.debug("@manifest_file_list: #{@manifest_file_list}")
|
19
|
-
@manifest_file_list.each {|file_name|
|
20
|
-
manifest_file_namepath = "#{@repo_filepath}/#{file_name}"
|
21
|
-
$plog.debug("manifest_file_namepath: #{manifest_file_namepath}")
|
22
|
-
if File.exists?(manifest_file_namepath)
|
23
|
-
# TODO:
|
24
|
-
if file_name =~ API::FILE_NAME_PATTERN[:components_yml]
|
25
|
-
else
|
26
|
-
# normal 'manifest.yml' file
|
27
|
-
dependencies = ManifestYAML.new(manifest_file_namepath).get_dependencies
|
28
|
-
packs.concat(dependencies)
|
29
|
-
end
|
30
|
-
|
31
|
-
else
|
32
|
-
raise "Parameter error, @manifest_file_list: #{@manifest_file_list}"
|
33
|
-
end
|
34
|
-
}
|
35
|
-
packs
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
class ManifestYAML
|
40
|
-
attr_reader :contents, :pack_language, :manifest_file_namepath
|
41
|
-
|
42
|
-
def initialize(manifest_file_namepath)
|
43
|
-
@contents = YAML.load_file(manifest_file_namepath)
|
44
|
-
@pack_language = 'manifest.yml'
|
45
|
-
end
|
46
|
-
|
47
|
-
def get_dependencies()
|
48
|
-
if @contents['dependencies'] == nil
|
49
|
-
return []
|
50
|
-
else
|
51
|
-
return @contents['dependencies']
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
def get_exclude_files()
|
56
|
-
@contents['exclude_files']
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
if __FILE__ == $0
|
62
|
-
path = '/tmp/license_website/github.com/cloudfoundry/python-buildpack'
|
63
|
-
id = 81
|
64
|
-
p = ManifestParser.new(path, id)
|
65
|
-
p.start
|
66
|
-
end
|
@@ -1,91 +0,0 @@
|
|
1
|
-
require 'open3'
|
2
|
-
require_relative '../misc'
|
3
|
-
|
4
|
-
class MavenParser
|
5
|
-
|
6
|
-
def initialize(repo_path)
|
7
|
-
@repo_path = repo_path
|
8
|
-
@package_list = Array.new
|
9
|
-
@pom_xml = /pom.xml/
|
10
|
-
end
|
11
|
-
|
12
|
-
def find_build_dot_pom
|
13
|
-
filenames = Misc::DirUtils.new(@repo_path).filter_filename(@pom_xml)
|
14
|
-
|
15
|
-
if filenames.size == 0
|
16
|
-
return false
|
17
|
-
else
|
18
|
-
return true
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def start
|
23
|
-
|
24
|
-
if find_build_dot_pom == false
|
25
|
-
return []
|
26
|
-
end
|
27
|
-
|
28
|
-
cmd = 'mvn dependency:resolve'
|
29
|
-
flag = false
|
30
|
-
Dir.chdir(@repo_path)
|
31
|
-
Open3.popen3(cmd) {|i,o,e,t|
|
32
|
-
out = o.readlines
|
33
|
-
error = e.readlines
|
34
|
-
if error.length > 0
|
35
|
-
# TODO
|
36
|
-
elsif out.length > 0
|
37
|
-
out.each do |row|
|
38
|
-
flag = true if row == "[INFO] BUILD SUCCESS\n"
|
39
|
-
end
|
40
|
-
else
|
41
|
-
# TODO
|
42
|
-
end
|
43
|
-
}
|
44
|
-
if flag
|
45
|
-
cmd = 'mvn dependency:list'
|
46
|
-
flag = false
|
47
|
-
packages = []
|
48
|
-
Dir.chdir(@repo_path)
|
49
|
-
Open3.popen3(cmd) {|i,o,e,t|
|
50
|
-
out = o.readlines
|
51
|
-
error = e.readlines
|
52
|
-
if error.length > 0
|
53
|
-
# TODO
|
54
|
-
elsif out.length > 0
|
55
|
-
out.each do |row|
|
56
|
-
# p row
|
57
|
-
if row == "[INFO] The following files have been resolved:\n"
|
58
|
-
flag = true
|
59
|
-
elsif row == "[INFO] \n"
|
60
|
-
flag = false
|
61
|
-
elsif flag == true
|
62
|
-
packages << row
|
63
|
-
end
|
64
|
-
end
|
65
|
-
else
|
66
|
-
# TODO
|
67
|
-
end
|
68
|
-
}
|
69
|
-
packages.each do |line|
|
70
|
-
line.gsub!(/\[INFO\]/,'').strip!
|
71
|
-
pack = line.split("\:")
|
72
|
-
@package_list << {
|
73
|
-
:group =>pack[0],
|
74
|
-
:name =>pack[1],
|
75
|
-
:version => pack[3]
|
76
|
-
}
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
return @package_list
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
|
85
|
-
if __FILE__ == $0
|
86
|
-
path = "/home/li/ruby/maximus-master"
|
87
|
-
packs = MavenParser.new(path).start
|
88
|
-
packs.each do |row|
|
89
|
-
p row
|
90
|
-
end
|
91
|
-
end
|
data/remove/parser/npm_parser.rb
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'open3'
|
3
|
-
require_relative '../../config/config'
|
4
|
-
require_relative '../../lib/misc'
|
5
|
-
require_relative '../api/npm_registry'
|
6
|
-
require_relative '../api/pattern'
|
7
|
-
|
8
|
-
class NpmParser
|
9
|
-
def initialize(repo_path)
|
10
|
-
@repo_path = repo_path
|
11
|
-
@package_json_pattern = /#{repo_path}\/.*package\.json$/
|
12
|
-
end
|
13
|
-
|
14
|
-
def start
|
15
|
-
pack_name_versions = []
|
16
|
-
filenames = Misc::DirUtils.new(@repo_path).filter_filename(@package_json_pattern)
|
17
|
-
filenames.each {|filename|
|
18
|
-
$plog.debug(filename)
|
19
|
-
j = JSON.parse(File.read(filename))
|
20
|
-
deps = j['dependencies']
|
21
|
-
dev_deps = j['devDependencies']
|
22
|
-
[deps, dev_deps].each {|d|
|
23
|
-
if d.nil?
|
24
|
-
next
|
25
|
-
end
|
26
|
-
d.each {|pack_name,semver|
|
27
|
-
if _is_valid_semver(semver)
|
28
|
-
certain_version = API::NpmRegistry.new(pack_name, semver).chose_one_available_version(semver)
|
29
|
-
pack = {'name' => pack_name, 'version' => certain_version}
|
30
|
-
pack_name_versions.push(pack)
|
31
|
-
elsif semver =~ API::SOURCE_URL_PATTERN[:npm_urls]
|
32
|
-
r = API::SOURCE_URL_PATTERN[:npm_urls].match(semver)
|
33
|
-
# TODO: save by original type
|
34
|
-
if r['host'] =~ API::SOURCE_URL_PATTERN[:github_dot_com]
|
35
|
-
source_url = "https://github.com/#{r['owner']}/#{r['repo']}"
|
36
|
-
else
|
37
|
-
source_url = semver
|
38
|
-
end
|
39
|
-
if r['ref'] == nil
|
40
|
-
version = 'master'
|
41
|
-
else
|
42
|
-
version = r['ref']
|
43
|
-
end
|
44
|
-
pack = {
|
45
|
-
'name' => pack_name,
|
46
|
-
'version' => version,
|
47
|
-
'uri' => source_url
|
48
|
-
}
|
49
|
-
pack_name_versions.push(pack)
|
50
|
-
else
|
51
|
-
pack = {
|
52
|
-
'name' => pack_name,
|
53
|
-
'version' => semver,
|
54
|
-
'uri' => nil
|
55
|
-
}
|
56
|
-
pack_name_versions.push(pack)
|
57
|
-
# raise "Unknown semver pattern: #{semver}, pack_name"
|
58
|
-
end
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
62
|
-
pack_name_versions
|
63
|
-
end
|
64
|
-
|
65
|
-
# DOC: https://github.com/npm/node-semver/blob/5f89ecbe78145ad0b501cf6279f602a23c89738d/test/index.js#L461
|
66
|
-
def _is_valid_semver(semver)
|
67
|
-
is_valid = false
|
68
|
-
cmd = "node -e \"var semver = require('semver'); var valid = semver.validRange('#{semver}'); console.log(valid)\""
|
69
|
-
$plog.debug(cmd)
|
70
|
-
Open3.popen3(cmd) {|i,o,e,t|
|
71
|
-
out = o.readlines
|
72
|
-
error = e.readlines
|
73
|
-
if error.length > 0
|
74
|
-
$plog.error(error)
|
75
|
-
raise "node -e evaluate script error: #{cmd}, #{error}"
|
76
|
-
elsif out.length > 0
|
77
|
-
is_valid = out[0].gsub(/\n/,'') != 'null'
|
78
|
-
end
|
79
|
-
}
|
80
|
-
is_valid
|
81
|
-
end
|
82
|
-
end
|
data/remove/parser/pip_parser.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# TODO:
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
require 'open3'
|
3
|
-
require_relative '../../config/config'
|
4
|
-
require_relative '../../lib/misc'
|
5
|
-
require_relative '../api'
|
6
|
-
|
7
|
-
class ErlangParser
|
8
|
-
|
9
|
-
def initialize(repo_path)
|
10
|
-
@repo_path = repo_path
|
11
|
-
@rebar_config_pattern = /#{repo_path}\/rebar\.config$/
|
12
|
-
end
|
13
|
-
|
14
|
-
def start
|
15
|
-
packs = []
|
16
|
-
filenames = Misc::DirUtils.new(@repo_path).filter_filename(@rebar_config_pattern)
|
17
|
-
if filenames.size == 1
|
18
|
-
cmd = "rebar list-deps"
|
19
|
-
Dir.chdir(@repo_path) {
|
20
|
-
Open3.popen3(cmd) {|i,o,e,t|
|
21
|
-
output = o.read
|
22
|
-
error = e.read
|
23
|
-
if error.length > 0
|
24
|
-
packs = filter_items(error)
|
25
|
-
elsif output.length > 0
|
26
|
-
packs = filter_items(output)
|
27
|
-
else
|
28
|
-
raise "#{self.class}.list_projects error error: #{cmd}, #{error}"
|
29
|
-
end
|
30
|
-
}
|
31
|
-
}
|
32
|
-
end
|
33
|
-
packs
|
34
|
-
end
|
35
|
-
|
36
|
-
def filter_items(output)
|
37
|
-
packs = []
|
38
|
-
output = output.gsub(/\s/, '').gsub(/ERROR:Missingdependencies:/, '').split(/\},\{/)
|
39
|
-
output.each {|d|
|
40
|
-
pattern = /dep,\"(?<local_dir>.+)\",(?<app_name>.+),\[*\],\{(?<repository_type>(git|hg|bzr)),\"(?<location_url>.*)\",\"(?<ref>.+)\"}/
|
41
|
-
matched = pattern.match(d)
|
42
|
-
if matched
|
43
|
-
# repository_type = matched[:repository_type]
|
44
|
-
source_url = matched[:location_url]
|
45
|
-
pack_version = matched[:ref]
|
46
|
-
if source_url =~ API::SOURCE_URL_PATTERN[:github]
|
47
|
-
pack_name = API::Github.new(source_url).repo
|
48
|
-
source_url = source_url.gsub(/git:\/\//, 'https://')
|
49
|
-
else
|
50
|
-
pack_name = source_url
|
51
|
-
end
|
52
|
-
packs.push({
|
53
|
-
'name' => pack_name,
|
54
|
-
'version' => pack_version,
|
55
|
-
'uri' => source_url
|
56
|
-
})
|
57
|
-
end
|
58
|
-
}
|
59
|
-
packs
|
60
|
-
end
|
61
|
-
end
|
data/remove/recorder.rb
DELETED
@@ -1,184 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'csv'
|
3
|
-
require 'json'
|
4
|
-
require_relative '../config/config'
|
5
|
-
require_relative './api'
|
6
|
-
|
7
|
-
class PacksSaver
|
8
|
-
def initialize(repo_id, packs, lang, release_id)
|
9
|
-
@release_id = release_id
|
10
|
-
@repo_id = repo_id
|
11
|
-
@packs = packs
|
12
|
-
@lang = lang
|
13
|
-
end
|
14
|
-
|
15
|
-
def save()
|
16
|
-
if @lang == 'Golang'
|
17
|
-
save_golang
|
18
|
-
elsif @lang == 'Ruby'
|
19
|
-
save_ruby
|
20
|
-
elsif @lang == 'manifest.yml' or @lang == 'NodeJs' or @lang == 'Erlang'
|
21
|
-
save_manifest
|
22
|
-
elsif @lang == 'Gradle'
|
23
|
-
save_gradle
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def save_gradle
|
28
|
-
@packs.each {|pack|
|
29
|
-
begin
|
30
|
-
$plog.debug(pack)
|
31
|
-
pack_name = [pack[:group], pack[:name]].join(':')
|
32
|
-
pack_version = pack[:version]
|
33
|
-
status = 10
|
34
|
-
homepage, source_url = nil, pack['uri']
|
35
|
-
license, cmt = nil, nil
|
36
|
-
|
37
|
-
pg_result = api_add_pack(pack_name, pack_version, @lang, homepage, source_url, license, status, cmt)
|
38
|
-
enqueue_result(pg_result)
|
39
|
-
rescue Exception => _
|
40
|
-
$plog.error(_)
|
41
|
-
end
|
42
|
-
}
|
43
|
-
end
|
44
|
-
|
45
|
-
def save_manifest
|
46
|
-
@packs.each {|pack|
|
47
|
-
begin
|
48
|
-
$plog.debug(pack)
|
49
|
-
pack_name, pack_version, status = pack['name'], pack['version'], 10
|
50
|
-
homepage, source_url = nil, pack['uri']
|
51
|
-
license, cmt = nil, nil
|
52
|
-
|
53
|
-
pg_result = api_add_pack(pack_name, pack_version, @lang, homepage, source_url, license, status, cmt)
|
54
|
-
enqueue_result(pg_result)
|
55
|
-
rescue Exception => _
|
56
|
-
$plog.error(_)
|
57
|
-
end
|
58
|
-
}
|
59
|
-
end
|
60
|
-
|
61
|
-
def save_ruby
|
62
|
-
def license_name_format(origin_license)
|
63
|
-
if origin_license.nil?
|
64
|
-
return nil
|
65
|
-
end
|
66
|
-
empty_pattern = /---\s\[\]\n/
|
67
|
-
license = origin_license.gsub(empty_pattern, '').gsub(/---\s\n[\.]+\n/, '').gsub(/---\n-\s/, '').gsub(/\n/, '').gsub(/['"\s]+$/, '').gsub(/^['"\s]+/, '')
|
68
|
-
if license.empty?
|
69
|
-
return nil
|
70
|
-
else
|
71
|
-
return license
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
@packs.each {|pack|
|
76
|
-
begin
|
77
|
-
pack[:license] = license_name_format(pack[:license])
|
78
|
-
# $plog.debug(pack)
|
79
|
-
pack_name, pack_version, status = pack[:pack_name], pack[:pack_version], pack[:status]
|
80
|
-
homepage, source_url = pack[:homepage], pack[:source_url]
|
81
|
-
# lang is a website in act
|
82
|
-
license, cmt, lang = pack[:license], pack[:cmt], pack[:language]
|
83
|
-
|
84
|
-
pg_result = api_add_pack(pack_name, pack_version, lang, homepage, source_url, license, status, cmt)
|
85
|
-
enqueue_result(pg_result)
|
86
|
-
rescue Exception => _
|
87
|
-
$plog.error(_)
|
88
|
-
end
|
89
|
-
}
|
90
|
-
end
|
91
|
-
|
92
|
-
# 处理api_add_pack()返回的结果
|
93
|
-
def enqueue_result(pg_result)
|
94
|
-
begin
|
95
|
-
if pg_result != nil
|
96
|
-
pack_id = pg_result['pack_id'].to_i
|
97
|
-
is_newbie = pg_result['is_newbie'] == 't'
|
98
|
-
api_add_product_repo_pack(@repo_id, pack_id, @release_id)
|
99
|
-
|
100
|
-
if is_newbie
|
101
|
-
queue_name = 'license_auto.pack'
|
102
|
-
$rmq.publish(queue_name, {:pack_id => pack_id}.to_json, check_exist=true)
|
103
|
-
end
|
104
|
-
$plog.debug("pack_id: #{pack_id}, is_newbie: #{is_newbie}")
|
105
|
-
else
|
106
|
-
$plog.error("#{pack_url} insert failed!")
|
107
|
-
end
|
108
|
-
rescue Exception => _
|
109
|
-
$plog.error(_)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def save_golang()
|
114
|
-
@packs.each { |pack_name, pack_url|
|
115
|
-
begin
|
116
|
-
$plog.debug("save_golange: #{pack_url}")
|
117
|
-
|
118
|
-
pack_version = 'unknown'
|
119
|
-
homepage = nil
|
120
|
-
source_url = nil
|
121
|
-
status = 10
|
122
|
-
cmt = nil
|
123
|
-
|
124
|
-
remote = API::RemoteSourceVCS.new(pack_url)
|
125
|
-
|
126
|
-
if remote.vcs == nil
|
127
|
-
status = 30
|
128
|
-
cmt = 'Unknown repo site'
|
129
|
-
pack_name = pack_name.split('/').last
|
130
|
-
else
|
131
|
-
pack_name = remote.vcs.repo
|
132
|
-
source_url = remote.vcs.repo_url
|
133
|
-
homepage = remote.get_homepage
|
134
|
-
last_commit = remote.vcs.last_commits
|
135
|
-
if last_commit
|
136
|
-
pack_version = last_commit['sha']
|
137
|
-
end
|
138
|
-
end
|
139
|
-
# $plog.debug("#{pack_version}, #{pack_url}")
|
140
|
-
license = nil
|
141
|
-
pg_result = api_add_pack(pack_name, pack_version, 'Golang', homepage, source_url, license, status, cmt)
|
142
|
-
enqueue_result(pg_result)
|
143
|
-
rescue Exception => _
|
144
|
-
$plog.error(_)
|
145
|
-
end
|
146
|
-
}
|
147
|
-
end
|
148
|
-
|
149
|
-
end
|
150
|
-
|
151
|
-
class PackUpdate
|
152
|
-
def initialize(pack_id, pack)
|
153
|
-
@pack_id = pack_id
|
154
|
-
@pack = pack
|
155
|
-
end
|
156
|
-
|
157
|
-
def update()
|
158
|
-
ok = api_update_pack_info(@pack_id, @pack)
|
159
|
-
end
|
160
|
-
|
161
|
-
def self.judge_pack_status(packer)
|
162
|
-
# TODO: @Micfan test it
|
163
|
-
if is_std_license(packer[:license]) and ( packer[:license_url] or packer[:license_text])
|
164
|
-
packer[:unclear_license] = nil
|
165
|
-
packer[:status] = 40
|
166
|
-
else
|
167
|
-
packer[:unclear_license] = packer[:license]
|
168
|
-
packer[:license] = nil
|
169
|
-
packer[:status] = 30
|
170
|
-
end
|
171
|
-
return packer
|
172
|
-
end
|
173
|
-
|
174
|
-
def self.is_std_license(license)
|
175
|
-
where = "where name = '#{license}'"
|
176
|
-
std_licenses = api_get_std_license_name(where)
|
177
|
-
return std_licenses.ntuples == 1
|
178
|
-
end
|
179
|
-
|
180
|
-
end
|
181
|
-
|
182
|
-
if __FILE__ == $0
|
183
|
-
p PackUpdate.is_std_license('MIT')
|
184
|
-
end
|