license_finder 7.0.1 → 7.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +7 -0
- data/.pre-commit-hooks.yaml +10 -0
- data/.rubocop.yml +5 -1
- data/CHANGELOG.md +41 -0
- data/CONTRIBUTING.md +1 -0
- data/Dockerfile +129 -122
- data/README.md +53 -14
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/ci/pipelines/pull-request.yml.erb +29 -32
- data/ci/pipelines/release.yml.erb +17 -41
- data/ci/scripts/run-tests.sh +20 -4
- data/ci/tasks/rubocop.yml +3 -3
- data/ci/tasks/update-changelog.yml +2 -2
- data/dlf +6 -1
- data/lib/license_finder/cli/base.rb +2 -0
- data/lib/license_finder/cli/licenses.rb +8 -3
- data/lib/license_finder/cli/main.rb +3 -1
- data/lib/license_finder/configuration.rb +8 -0
- data/lib/license_finder/core.rb +4 -2
- data/lib/license_finder/decision_applier.rb +1 -1
- data/lib/license_finder/decisions.rb +24 -6
- data/lib/license_finder/license/definitions.rb +129 -19
- data/lib/license_finder/license/templates/AGPL3.txt +661 -0
- data/lib/license_finder/license/templates/Apache2.txt +0 -2
- data/lib/license_finder/license/templates/Artistic.txt +128 -0
- data/lib/license_finder/license/templates/CC01_alt.txt +31 -0
- data/lib/license_finder/license/templates/CDDL1_1.txt +123 -0
- data/lib/license_finder/license/templates/CPL1.txt +217 -0
- data/lib/license_finder/license/templates/EPL2.txt +80 -0
- data/lib/license_finder/license/templates/Unlicense.txt +24 -0
- data/lib/license_finder/license/text.rb +4 -0
- data/lib/license_finder/license.rb +1 -1
- data/lib/license_finder/manual_licenses.rb +79 -0
- data/lib/license_finder/package.rb +1 -0
- data/lib/license_finder/package_manager.rb +2 -1
- data/lib/license_finder/package_managers/cargo.rb +1 -1
- data/lib/license_finder/package_managers/conan.rb +50 -8
- data/lib/license_finder/package_managers/dep.rb +43 -41
- data/lib/license_finder/package_managers/dotnet.rb +5 -2
- data/lib/license_finder/package_managers/go_dep.rb +1 -1
- data/lib/license_finder/package_managers/go_workspace.rb +3 -2
- data/lib/license_finder/package_managers/maven.rb +18 -10
- data/lib/license_finder/package_managers/npm.rb +14 -1
- data/lib/license_finder/package_managers/nuget.rb +5 -0
- data/lib/license_finder/package_managers/pip.rb +1 -1
- data/lib/license_finder/package_managers/pnpm.rb +126 -0
- data/lib/license_finder/package_managers/yarn.rb +69 -20
- data/lib/license_finder/package_utils/conan_info_parser.rb +2 -2
- data/lib/license_finder/package_utils/conan_info_parser_v2.rb +82 -0
- data/lib/license_finder/package_utils/license_files.rb +12 -2
- data/lib/license_finder/package_utils/licensing.rb +2 -1
- data/lib/license_finder/package_utils/maven_dependency_finder.rb +43 -1
- data/lib/license_finder/package_utils/notice_files.rb +14 -3
- data/lib/license_finder/package_utils/possible_license_file.rb +8 -2
- data/lib/license_finder/package_utils/pypi.rb +3 -1
- data/lib/license_finder/packages/maven_package.rb +13 -1
- data/lib/license_finder/packages/npm_package.rb +56 -9
- data/lib/license_finder/packages/pnpm_package.rb +13 -0
- data/lib/license_finder/printer.rb +2 -2
- data/lib/license_finder/reports/csv_report.rb +10 -1
- data/lib/license_finder/scanner.rb +3 -3
- data/license_finder.gemspec +12 -11
- metadata +54 -28
@@ -13,27 +13,34 @@ resource_types:
|
|
13
13
|
source:
|
14
14
|
repository: cfcommunity/slack-notification-resource
|
15
15
|
tag: latest
|
16
|
-
username: ((
|
17
|
-
password: ((
|
16
|
+
username: ((license-finder-docker-username))
|
17
|
+
password: ((license-finder-docker-password))
|
18
18
|
<% end %>
|
19
19
|
|
20
20
|
resources:
|
21
|
+
- name: lf-git
|
22
|
+
type: git
|
23
|
+
source:
|
24
|
+
uri: git@github.com:pivotal/LicenseFinder.git
|
25
|
+
private_key: ((github-cf-osl-bot-private-key))
|
26
|
+
branch: master
|
27
|
+
|
21
28
|
- name: github-pull-request
|
22
29
|
type: pull-request
|
23
30
|
check_every: 24h
|
24
|
-
webhook_token: ((
|
31
|
+
webhook_token: ((github-pull-request-webhook-token))
|
25
32
|
source:
|
26
33
|
repository: pivotal/LicenseFinder
|
27
|
-
access_token: ((
|
34
|
+
access_token: ((github-api-pull-request-token))
|
28
35
|
|
29
36
|
- name: dockerhub-pr
|
30
37
|
type: docker-image
|
31
38
|
source:
|
32
39
|
tag: edge-pr
|
33
40
|
repository: licensefinder/license_finder
|
34
|
-
email: ((
|
35
|
-
username: ((
|
36
|
-
password: ((
|
41
|
+
email: ((license-finder-docker-email))
|
42
|
+
username: ((license-finder-docker-username))
|
43
|
+
password: ((license-finder-docker-password))
|
37
44
|
|
38
45
|
<% if setup_slack %>
|
39
46
|
- name: slack-alert
|
@@ -47,23 +54,19 @@ jobs:
|
|
47
54
|
public: true
|
48
55
|
plan:
|
49
56
|
- get: github-pull-request
|
50
|
-
tags: ["private-worker"]
|
51
57
|
version: every
|
52
58
|
trigger: true
|
53
59
|
- put: dockerhub-pr
|
54
|
-
tags: ["private-worker"]
|
55
60
|
params:
|
56
61
|
build: github-pull-request
|
57
62
|
on_success:
|
58
63
|
put: github-pull-request
|
59
|
-
tags: ["private-worker"]
|
60
64
|
params:
|
61
65
|
path: github-pull-request
|
62
66
|
status: success
|
63
67
|
context: build-docker-image
|
64
68
|
on_failure:
|
65
69
|
put: github-pull-request
|
66
|
-
tags: ["private-worker"]
|
67
70
|
params:
|
68
71
|
path: github-pull-request
|
69
72
|
status: failure
|
@@ -72,32 +75,29 @@ jobs:
|
|
72
75
|
- name: PR-ruby-<%= ruby_version %>-linux
|
73
76
|
public: true
|
74
77
|
plan:
|
75
|
-
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
- in_parallel:
|
79
|
+
- get: github-pull-request
|
80
|
+
passed: [build-docker-image]
|
81
|
+
version: every
|
82
|
+
- get: dockerhub-pr
|
83
|
+
passed: [build-docker-image]
|
84
|
+
trigger: true
|
85
|
+
- get: lf-git
|
83
86
|
- task: ruby-<%= ruby_version %>
|
84
|
-
tags: ["private-worker"]
|
85
87
|
privileged: true
|
86
88
|
image: dockerhub-pr
|
87
|
-
file:
|
89
|
+
file: lf-git/ci/tasks/run-tests.yml
|
88
90
|
params:
|
89
91
|
RUBY_VERSION_UNDER_TEST: <%= ruby_version %>
|
90
92
|
input_mapping: { LicenseFinder: github-pull-request }
|
91
93
|
on_success:
|
92
94
|
put: github-pull-request
|
93
|
-
tags: ["private-worker"]
|
94
95
|
params:
|
95
96
|
path: github-pull-request
|
96
97
|
status: success
|
97
98
|
context: ruby-<%= ruby_version %>
|
98
99
|
on_failure:
|
99
100
|
put: github-pull-request
|
100
|
-
tags: ["private-worker"]
|
101
101
|
params:
|
102
102
|
path: github-pull-request
|
103
103
|
status: failure
|
@@ -105,7 +105,6 @@ jobs:
|
|
105
105
|
<% if setup_slack %>
|
106
106
|
on_failure:
|
107
107
|
put: slack-alert
|
108
|
-
tags: ["private-worker"]
|
109
108
|
params:
|
110
109
|
channel: '<%= slack_channel %>'
|
111
110
|
icon_emoji: ':crying_cat_face:'
|
@@ -116,25 +115,23 @@ jobs:
|
|
116
115
|
- name: PR-rubocop
|
117
116
|
public: true
|
118
117
|
plan:
|
119
|
-
-
|
120
|
-
|
121
|
-
|
122
|
-
|
118
|
+
- in_parallel:
|
119
|
+
- get: github-pull-request
|
120
|
+
trigger: true
|
121
|
+
version: every
|
122
|
+
- get: lf-git
|
123
123
|
- task: run-rubocop
|
124
|
-
tags: ["private-worker"]
|
125
124
|
privileged: true
|
126
|
-
file:
|
125
|
+
file: lf-git/ci/tasks/rubocop.yml
|
127
126
|
input_mapping: { LicenseFinder: github-pull-request }
|
128
127
|
on_success:
|
129
128
|
put: github-pull-request
|
130
|
-
tags: ["private-worker"]
|
131
129
|
params:
|
132
130
|
path: github-pull-request
|
133
131
|
status: success
|
134
132
|
context: run-rubocop
|
135
133
|
on_failure:
|
136
134
|
put: github-pull-request
|
137
|
-
tags: ["private-worker"]
|
138
135
|
params:
|
139
136
|
path: github-pull-request
|
140
137
|
status: failure
|
@@ -8,8 +8,8 @@ resource_types:
|
|
8
8
|
source:
|
9
9
|
repository: cfcommunity/slack-notification-resource
|
10
10
|
tag: latest
|
11
|
-
username: ((
|
12
|
-
password: ((
|
11
|
+
username: ((license-finder-docker-username))
|
12
|
+
password: ((license-finder-docker-password))
|
13
13
|
<% end %>
|
14
14
|
|
15
15
|
resources:
|
@@ -17,7 +17,7 @@ resources:
|
|
17
17
|
type: git
|
18
18
|
source:
|
19
19
|
uri: git@github.com:pivotal/LicenseFinder.git
|
20
|
-
private_key: ((
|
20
|
+
private_key: ((github-cf-osl-bot-private-key))
|
21
21
|
branch: master
|
22
22
|
ignore_paths: [VERSION, CHANGELOG.md]
|
23
23
|
|
@@ -27,24 +27,24 @@ resources:
|
|
27
27
|
driver: gcs
|
28
28
|
bucket: lf-semver-version
|
29
29
|
key: version
|
30
|
-
json_key: ((
|
30
|
+
json_key: ((lf-bucket-credentials))
|
31
31
|
|
32
32
|
- name: dockerhub-edge
|
33
33
|
type: docker-image
|
34
34
|
source:
|
35
35
|
tag: edge
|
36
36
|
repository: licensefinder/license_finder
|
37
|
-
email: ((
|
38
|
-
username: ((
|
39
|
-
password: ((
|
37
|
+
email: ((license-finder-docker-email))
|
38
|
+
username: ((license-finder-docker-username))
|
39
|
+
password: ((license-finder-docker-password))
|
40
40
|
|
41
41
|
- name: dockerhub
|
42
42
|
type: docker-image
|
43
43
|
source:
|
44
44
|
repository: licensefinder/license_finder
|
45
|
-
email: ((
|
46
|
-
username: ((
|
47
|
-
password: ((
|
45
|
+
email: ((license-finder-docker-email))
|
46
|
+
username: ((license-finder-docker-username))
|
47
|
+
password: ((license-finder-docker-password))
|
48
48
|
|
49
49
|
- name: lf-release
|
50
50
|
type: github-release
|
@@ -52,7 +52,7 @@ resources:
|
|
52
52
|
source:
|
53
53
|
owner: pivotal
|
54
54
|
repository: LicenseFinder
|
55
|
-
access_token: ((
|
55
|
+
access_token: ((github-api-root-token))
|
56
56
|
|
57
57
|
<% if setup_slack %>
|
58
58
|
- name: slack-alert
|
@@ -66,10 +66,8 @@ jobs:
|
|
66
66
|
public: true
|
67
67
|
plan:
|
68
68
|
- get: lf-git
|
69
|
-
tags: ["private-worker"]
|
70
69
|
trigger: true
|
71
70
|
- put: dockerhub-edge
|
72
|
-
tags: ["private-worker"]
|
73
71
|
params:
|
74
72
|
build: lf-git
|
75
73
|
|
@@ -78,16 +76,13 @@ jobs:
|
|
78
76
|
public: true
|
79
77
|
plan:
|
80
78
|
- get: dockerhub-edge
|
81
|
-
tags: ["private-worker"]
|
82
79
|
passed: [build-docker-image]
|
83
80
|
trigger: true
|
84
81
|
- get: LicenseFinder
|
85
|
-
tags: ["private-worker"]
|
86
82
|
resource: lf-git
|
87
83
|
passed: [build-docker-image]
|
88
84
|
version: every
|
89
85
|
- task: ruby-<%= ruby_version %>
|
90
|
-
tags: ["private-worker"]
|
91
86
|
privileged: true
|
92
87
|
image: dockerhub-edge
|
93
88
|
file: LicenseFinder/ci/tasks/run-tests.yml
|
@@ -97,7 +92,6 @@ jobs:
|
|
97
92
|
<% if setup_slack %>
|
98
93
|
on_failure:
|
99
94
|
put: slack-alert
|
100
|
-
tags: ["private-worker"]
|
101
95
|
params:
|
102
96
|
channel: '<%= slack_channel %>'
|
103
97
|
icon_emoji: ':crying_cat_face:'
|
@@ -109,16 +103,13 @@ jobs:
|
|
109
103
|
public: true
|
110
104
|
plan:
|
111
105
|
- get: dockerhub-edge
|
112
|
-
tags: ["private-worker"]
|
113
106
|
passed: [build-docker-image]
|
114
107
|
trigger: true
|
115
108
|
- get: LicenseFinder
|
116
|
-
tags: ["private-worker"]
|
117
109
|
resource: lf-git
|
118
110
|
version: every
|
119
111
|
passed: [build-docker-image]
|
120
112
|
- task: run-rubocop
|
121
|
-
tags: ["private-worker"]
|
122
113
|
privileged: true
|
123
114
|
file: LicenseFinder/ci/tasks/rubocop.yml
|
124
115
|
input_mapping: { LicenseFinder: LicenseFinder }
|
@@ -126,74 +117,59 @@ jobs:
|
|
126
117
|
- name: bump-major
|
127
118
|
plan:
|
128
119
|
- get: semver-version
|
129
|
-
tags: ["private-worker"]
|
130
120
|
params: {bump: major}
|
131
121
|
- put: semver-version
|
132
|
-
tags: ["private-worker"]
|
133
122
|
params: {file: semver-version/version}
|
134
123
|
|
135
124
|
|
136
125
|
- name: bump-minor
|
137
126
|
plan:
|
138
127
|
- get: semver-version
|
139
|
-
tags: ["private-worker"]
|
140
128
|
params: {bump: minor}
|
141
129
|
- put: semver-version
|
142
|
-
tags: ["private-worker"]
|
143
130
|
params: {file: semver-version/version}
|
144
131
|
|
145
132
|
- name: bump-patch
|
146
133
|
plan:
|
147
134
|
- get: semver-version
|
148
|
-
tags: ["private-worker"]
|
149
135
|
params: {bump: patch}
|
150
136
|
- put: semver-version
|
151
|
-
tags: ["private-worker"]
|
152
137
|
params: {file: semver-version/version}
|
153
138
|
|
154
139
|
- name: release
|
155
140
|
disable_manual_trigger: true
|
156
141
|
plan:
|
157
142
|
- get: lf-git
|
158
|
-
tags: ["private-worker"]
|
159
143
|
passed: [<%= "#{ruby_versions.map{ |version| "ruby-#{version}" unless version == "jruby-9.3.1.0" }.compact.join(', ') }, rubocop" %>]
|
160
144
|
- get: semver-version
|
161
|
-
tags: ["private-worker"]
|
162
145
|
trigger: true
|
163
146
|
- get: dockerhub
|
164
|
-
tags: ["private-worker"]
|
165
147
|
params:
|
166
148
|
save: true
|
167
149
|
- get: lf-release
|
168
|
-
tags: ["private-worker"]
|
169
150
|
- task: update-changelog
|
170
|
-
tags: ["private-worker"]
|
171
151
|
image: dockerhub
|
172
152
|
params:
|
173
|
-
GIT_USERNAME: ((
|
174
|
-
GIT_EMAIL: ((
|
153
|
+
GIT_USERNAME: ((github-api-user))
|
154
|
+
GIT_EMAIL: ((github-api-email))
|
175
155
|
file: lf-git/ci/tasks/update-changelog.yml
|
176
156
|
- put: dockerhub
|
177
|
-
tags: ["private-worker"]
|
178
157
|
params:
|
179
158
|
build: lf-git-changed
|
180
159
|
tag: version/version.txt
|
181
160
|
tag_as_latest: true
|
182
161
|
- put: lf-git
|
183
|
-
tags: ["private-worker"]
|
184
162
|
params:
|
185
163
|
repository: lf-git-changed
|
186
164
|
- task: build-and-push-gem
|
187
|
-
tags: ["private-worker"]
|
188
165
|
image: dockerhub
|
189
166
|
params:
|
190
|
-
GIT_USERNAME: ((
|
191
|
-
GIT_EMAIL: ((
|
192
|
-
GIT_PRIVATE_KEY: ((
|
193
|
-
GEM_API_KEY: ((
|
167
|
+
GIT_USERNAME: ((github-api-user))
|
168
|
+
GIT_EMAIL: ((github-api-email))
|
169
|
+
GIT_PRIVATE_KEY: ((github-cf-osl-bot-private-key))
|
170
|
+
GEM_API_KEY: ((license-finder-gem-api-key))
|
194
171
|
file: lf-git/ci/tasks/build-and-push-gem.yml
|
195
172
|
- put: lf-release
|
196
|
-
tags: ["private-worker"]
|
197
173
|
params:
|
198
174
|
name: version/tag.txt
|
199
175
|
tag: version/tag.txt
|
data/ci/scripts/run-tests.sh
CHANGED
@@ -6,14 +6,30 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
6
6
|
PROJECT_ROOT="$( dirname "$( dirname $DIR )" )"
|
7
7
|
|
8
8
|
pushd "$PROJECT_ROOT"
|
9
|
-
|
10
|
-
|
9
|
+
DISABLE_BINARY=""
|
10
|
+
if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" ]]; then
|
11
|
+
DISABLE_BINARY="--disable-binary"
|
12
|
+
fi
|
13
|
+
|
14
|
+
# This is needed for 2.7 but also works for 2.6. For 2.6, you can also downgrade the openssl version to 1.1.1l-1ubuntu1.4 in the dockerfile with allowing downgrades for apt install -y libssl-dev=1.1.1l-1ubuntu1.4
|
15
|
+
if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" || $RUBY_VERSION_UNDER_TEST == "2.7.8" ]]; then
|
16
|
+
OPEN_SSL_FLAG="--with-openssl-dir=/usr/share/rvm/usr/"
|
17
|
+
rvm pkg install openssl
|
18
|
+
fi
|
19
|
+
|
20
|
+
rvm install --default $RUBY_VERSION_UNDER_TEST $DISABLE_BINARY $OPEN_SSL_FLAG
|
11
21
|
ruby --version
|
12
22
|
|
13
23
|
export GOPATH=$HOME/go
|
14
|
-
|
24
|
+
if [[ $RUBY_VERSION_UNDER_TEST == "2.6.10" || $RUBY_VERSION_UNDER_TEST == "2.7.8" ]]; then
|
25
|
+
export RUBYOPT='-E utf-8 -W0'
|
26
|
+
gem install "rubygems-update:<3.5.0" --no-document
|
27
|
+
gem update --system --conservative
|
28
|
+
else
|
29
|
+
export RUBYOPT='-E utf-8'
|
30
|
+
gem update --system
|
31
|
+
fi
|
15
32
|
|
16
|
-
gem update --system
|
17
33
|
gem install bundler
|
18
34
|
bundle install
|
19
35
|
bundle pristine
|
data/ci/tasks/rubocop.yml
CHANGED
@@ -4,9 +4,9 @@ image_resource:
|
|
4
4
|
type: registry-image
|
5
5
|
source:
|
6
6
|
repository: ruby
|
7
|
-
tag: 3.
|
8
|
-
username: ((
|
9
|
-
password: ((
|
7
|
+
tag: 3.2.3
|
8
|
+
username: ((license-finder-docker-username))
|
9
|
+
password: ((license-finder-docker-password))
|
10
10
|
|
11
11
|
inputs:
|
12
12
|
- name: LicenseFinder
|
@@ -4,8 +4,8 @@ image_resource:
|
|
4
4
|
source:
|
5
5
|
repository: brenix/alpine-bash-git-ssh
|
6
6
|
tag: latest
|
7
|
-
username: ((
|
8
|
-
password: ((
|
7
|
+
username: ((license-finder-docker-username))
|
8
|
+
password: ((license-finder-docker-password))
|
9
9
|
platform: linux
|
10
10
|
inputs:
|
11
11
|
- name: lf-git
|
data/dlf
CHANGED
@@ -7,7 +7,12 @@ if `which docker > /dev/null`; then
|
|
7
7
|
for p in "$@"; do
|
8
8
|
escaped_params="$escaped_params \"$p\""
|
9
9
|
done
|
10
|
-
|
10
|
+
if [[ $escaped_params =~ "&&" ]]; then
|
11
|
+
command=${escaped_params:2:${#escaped_params}-3}
|
12
|
+
else
|
13
|
+
command=$escaped_params
|
14
|
+
fi
|
15
|
+
docker run -v $PWD:/scan -it licensefinder/license_finder /bin/bash -lc "cd /scan && $command"
|
11
16
|
fi
|
12
17
|
else
|
13
18
|
echo "You do not have docker installed. Please install it:"
|
@@ -7,19 +7,24 @@ module LicenseFinder
|
|
7
7
|
include MakesDecisions
|
8
8
|
|
9
9
|
auditable
|
10
|
+
method_option :version, desc: 'The version associated with the license'
|
10
11
|
desc 'add DEPENDENCY LICENSE', "Set a dependency's licenses, overwriting any license_finder has found"
|
11
12
|
def add(name, license)
|
12
13
|
modifying { decisions.license(name, license, txn) }
|
13
14
|
|
14
|
-
|
15
|
+
version_info = options[:version] ? " with version #{options[:version]}" : ''
|
16
|
+
printer.say "The #{name} dependency#{version_info} has been marked as using #{license} license!", :green
|
15
17
|
end
|
16
18
|
|
17
19
|
auditable
|
20
|
+
method_option :version, desc: 'The version associated with the license'
|
18
21
|
desc 'remove DEPENDENCY LICENSE', 'Remove a manually set license'
|
19
|
-
def remove(dep, lic)
|
22
|
+
def remove(dep, lic = nil)
|
20
23
|
modifying { decisions.unlicense(dep, lic, txn) }
|
21
24
|
|
22
|
-
|
25
|
+
version_info = options[:version] ? " with version #{options[:version]}" : ''
|
26
|
+
suffix = lic ? " of #{lic}" : ''
|
27
|
+
printer.say "The dependency #{dep}#{version_info} no longer has a manual license#{suffix}"
|
23
28
|
end
|
24
29
|
end
|
25
30
|
end
|
@@ -32,6 +32,8 @@ module LicenseFinder
|
|
32
32
|
class_option :maven_include_groups, desc: 'Whether dependency name should include group id. Only meaningful if used with a Java/maven project. Defaults to false.'
|
33
33
|
class_option :maven_options, desc: 'Maven options to append to command. Defaults to empty.'
|
34
34
|
class_option :npm_options, desc: 'npm options to append to command. Defaults to empty.'
|
35
|
+
class_option :yarn_options, desc: 'yarn options to append to command. Defaults to empty.'
|
36
|
+
class_option :pnpm_options, desc: 'pnpm options to append to command. Defaults to empty.'
|
35
37
|
class_option :pip_requirements_path, desc: 'Path to python requirements file. Defaults to requirements.txt.'
|
36
38
|
class_option :python_version, desc: 'Python version to invoke pip with. Valid versions: 2 or 3. Default: 2'
|
37
39
|
class_option :rebar_command, desc: "Command to use when fetching rebar packages. Only meaningful if used with a Erlang/rebar project. Defaults to 'rebar'."
|
@@ -152,7 +154,7 @@ module LicenseFinder
|
|
152
154
|
shared_options
|
153
155
|
format_option
|
154
156
|
method_option :write_headers, type: :boolean, desc: 'Write exported columns as header row (csv).', default: false, required: false
|
155
|
-
method_option :save, desc: "Save report to a file. Default: 'license_report
|
157
|
+
method_option :save, desc: "Save report to a file. Default: 'license_report' in project root.", lazy_default: 'license_report'
|
156
158
|
|
157
159
|
def report
|
158
160
|
finder = LicenseAggregator.new(config, aggregate_paths)
|
data/lib/license_finder/core.rb
CHANGED
@@ -61,9 +61,9 @@ module LicenseFinder
|
|
61
61
|
clear_logs
|
62
62
|
package_managers = @scanner.active_package_managers
|
63
63
|
package_managers.each do |manager|
|
64
|
-
logger.debug manager.class,
|
64
|
+
logger.debug manager.class, "Running prepare on project '#{config.project_path}'"
|
65
65
|
manager.prepare
|
66
|
-
logger.debug manager.class,
|
66
|
+
logger.debug manager.class, "Finished prepare on project '#{config.project_path}'", color: :green
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
@@ -101,6 +101,8 @@ module LicenseFinder
|
|
101
101
|
maven_include_groups: config.maven_include_groups,
|
102
102
|
maven_options: config.maven_options,
|
103
103
|
npm_options: config.npm_options,
|
104
|
+
yarn_options: config.yarn_options,
|
105
|
+
pnpm_options: config.pnpm_options,
|
104
106
|
pip_requirements_path: config.pip_requirements_path,
|
105
107
|
python_version: config.python_version,
|
106
108
|
rebar_command: config.rebar_command,
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'open-uri'
|
4
4
|
require 'license_finder/license'
|
5
|
+
require 'license_finder/manual_licenses'
|
5
6
|
|
6
7
|
module LicenseFinder
|
7
8
|
class Decisions
|
@@ -11,8 +12,8 @@ module LicenseFinder
|
|
11
12
|
|
12
13
|
attr_reader :packages, :permitted, :restricted, :ignored, :ignored_groups, :project_name, :inherited_decisions
|
13
14
|
|
14
|
-
def licenses_of(name)
|
15
|
-
@
|
15
|
+
def licenses_of(name, version = nil)
|
16
|
+
@manual_licenses.licenses_of(name, version)
|
16
17
|
end
|
17
18
|
|
18
19
|
def homepage_of(name)
|
@@ -76,7 +77,7 @@ module LicenseFinder
|
|
76
77
|
def initialize
|
77
78
|
@decisions = []
|
78
79
|
@packages = Set.new
|
79
|
-
@
|
80
|
+
@manual_licenses = ManualLicenses.new
|
80
81
|
@homepages = {}
|
81
82
|
@approvals = {}
|
82
83
|
@permitted = Set.new
|
@@ -100,13 +101,29 @@ module LicenseFinder
|
|
100
101
|
|
101
102
|
def license(name, lic, txn = {})
|
102
103
|
add_decision [:license, name, lic, txn]
|
103
|
-
|
104
|
+
|
105
|
+
versions = txn[:versions]
|
106
|
+
|
107
|
+
if versions.nil? || versions.empty?
|
108
|
+
@manual_licenses.assign_to_all_versions(name, lic)
|
109
|
+
else
|
110
|
+
@manual_licenses.assign_to_specific_versions(name, lic, versions)
|
111
|
+
end
|
112
|
+
|
104
113
|
self
|
105
114
|
end
|
106
115
|
|
107
116
|
def unlicense(name, lic, txn = {})
|
108
117
|
add_decision [:unlicense, name, lic, txn]
|
109
|
-
|
118
|
+
|
119
|
+
versions = txn[:versions]
|
120
|
+
|
121
|
+
if versions.nil? || versions.empty?
|
122
|
+
@manual_licenses.unassign_from_all_versions(name, lic)
|
123
|
+
else
|
124
|
+
@manual_licenses.unassign_from_specific_versions(name, lic, versions)
|
125
|
+
end
|
126
|
+
|
110
127
|
self
|
111
128
|
end
|
112
129
|
|
@@ -235,9 +252,10 @@ module LicenseFinder
|
|
235
252
|
end
|
236
253
|
|
237
254
|
def restore_inheritance(decisions)
|
255
|
+
previous_value = @inherited
|
238
256
|
@inherited = true
|
239
257
|
self.class.restore(decisions, self)
|
240
|
-
@inherited =
|
258
|
+
@inherited = previous_value
|
241
259
|
self
|
242
260
|
end
|
243
261
|
|