license_finder 1.1.1-java → 1.2-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.rdoc +10 -0
- data/Gemfile +1 -1
- data/README.md +363 -0
- data/Rakefile +30 -1
- data/TODO.md +28 -0
- data/bin/license_finder_pip.py +18 -0
- data/db/migrate/201410031451_rename_dependency_license_name.rb +6 -0
- data/features/multiple_licenses.feature +9 -0
- data/features/step_definitions/cli_steps.rb +9 -9
- data/features/step_definitions/cocoapod_steps.rb +1 -1
- data/features/step_definitions/configure_bundler_groups_steps.rb +3 -3
- data/features/step_definitions/configure_whitelist_steps.rb +4 -4
- data/features/step_definitions/gradle_steps.rb +1 -1
- data/features/step_definitions/manually_added_steps.rb +3 -3
- data/features/step_definitions/manually_approved_steps.rb +5 -5
- data/features/step_definitions/manually_assigned_license_steps.rb +4 -4
- data/features/step_definitions/maven_steps.rb +1 -1
- data/features/step_definitions/multiple_licenses_steps.rb +14 -0
- data/features/step_definitions/node_steps.rb +1 -1
- data/features/step_definitions/python_steps.rb +1 -1
- data/features/step_definitions/report_csv_steps.rb +3 -3
- data/features/step_definitions/report_html_steps.rb +5 -5
- data/features/step_definitions/shared_steps.rb +23 -6
- data/lib/license_finder.rb +3 -0
- data/lib/license_finder/cli.rb +13 -34
- data/lib/license_finder/configuration.rb +8 -4
- data/lib/license_finder/dependency_manager.rb +25 -15
- data/lib/license_finder/license.rb +8 -0
- data/lib/license_finder/logger.rb +59 -0
- data/lib/license_finder/package.rb +37 -30
- data/lib/license_finder/package_manager.rb +20 -0
- data/lib/license_finder/package_managers/bower.rb +4 -9
- data/lib/license_finder/package_managers/bower_package.rb +2 -1
- data/lib/license_finder/package_managers/bundler.rb +26 -41
- data/lib/license_finder/package_managers/bundler_package.rb +6 -3
- data/lib/license_finder/package_managers/cocoa_pods.rb +18 -10
- data/lib/license_finder/package_managers/cocoa_pods_package.rb +4 -3
- data/lib/license_finder/package_managers/gradle.rb +7 -11
- data/lib/license_finder/package_managers/gradle_package.rb +2 -7
- data/lib/license_finder/package_managers/maven.rb +5 -9
- data/lib/license_finder/package_managers/maven_package.rb +4 -8
- data/lib/license_finder/package_managers/npm.rb +6 -10
- data/lib/license_finder/package_managers/npm_package.rb +2 -1
- data/lib/license_finder/package_managers/pip.rb +11 -24
- data/lib/license_finder/package_managers/pip_package.rb +2 -1
- data/lib/license_finder/package_saver.rb +2 -2
- data/lib/license_finder/platform.rb +4 -0
- data/lib/license_finder/possible_license_file.rb +4 -0
- data/lib/license_finder/possible_license_files.rb +2 -1
- data/lib/license_finder/reports/detailed_text_report.rb +1 -1
- data/lib/license_finder/reports/formatted_report.rb +1 -1
- data/lib/license_finder/tables/dependency.rb +22 -12
- data/lib/license_finder/yml_to_sql.rb +1 -1
- data/lib/templates/html_report.erb +4 -4
- data/lib/templates/markdown_report.erb +4 -4
- data/lib/templates/text_report.erb +1 -1
- data/license_finder.gemspec +28 -12
- data/spec/lib/license_finder/cli_spec.rb +193 -185
- data/spec/lib/license_finder/configuration_spec.rb +46 -47
- data/spec/lib/license_finder/dependency_manager_spec.rb +48 -44
- data/spec/lib/license_finder/license/definitions_spec.rb +26 -26
- data/spec/lib/license_finder/license_spec.rb +25 -25
- data/spec/lib/license_finder/package_managers/bower_package_spec.rb +33 -17
- data/spec/lib/license_finder/package_managers/bower_spec.rb +35 -35
- data/spec/lib/license_finder/package_managers/bundler_package_spec.rb +20 -15
- data/spec/lib/license_finder/package_managers/bundler_spec.rb +12 -19
- data/spec/lib/license_finder/package_managers/cocoa_pods_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/cocoa_pods_spec.rb +20 -22
- data/spec/lib/license_finder/package_managers/gradle_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/gradle_spec.rb +20 -20
- data/spec/lib/license_finder/package_managers/maven_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/maven_spec.rb +18 -18
- data/spec/lib/license_finder/package_managers/npm_package_spec.rb +36 -17
- data/spec/lib/license_finder/package_managers/npm_spec.rb +17 -17
- data/spec/lib/license_finder/package_managers/pip_package_spec.rb +16 -10
- data/spec/lib/license_finder/package_managers/pip_spec.rb +21 -18
- data/spec/lib/license_finder/package_saver_spec.rb +15 -25
- data/spec/lib/license_finder/possible_license_file_spec.rb +5 -4
- data/spec/lib/license_finder/possible_license_files_spec.rb +11 -5
- data/spec/lib/license_finder/reports/detailed_text_report_spec.rb +3 -3
- data/spec/lib/license_finder/reports/html_report_spec.rb +23 -23
- data/spec/lib/license_finder/reports/markdown_report_spec.rb +12 -12
- data/spec/lib/license_finder/reports/reporter_spec.rb +11 -11
- data/spec/lib/license_finder/reports/text_report_spec.rb +3 -3
- data/spec/lib/license_finder/tables/dependency_spec.rb +59 -41
- data/spec/lib/license_finder/yml_to_sql_spec.rb +21 -21
- data/spec/lib/license_finder_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -13
- data/spec/support/shared_examples_for_package.rb +46 -0
- data/spec/support/shared_examples_for_package_manager.rb +15 -0
- metadata +19 -100
- data/readme.md +0 -259
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25133c2e00fd276bf0231e3278dc5d6746d0dbfc
|
4
|
+
data.tar.gz: 1a41557a867f098913e932b318dc7328ca57a5d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68ed62fa7d61804c9f120ba1b0cf44ca74a2876c38ea99f38b493c1bece1887e11327c7ce8e814b4f02953c0c815f5845994a479c09e7d70febd87dab618c6bb
|
7
|
+
data.tar.gz: a3ee81f80e84b25152a95425893c242f177d1ab3c36a6a8fdcef4668928ea8c4071449bf22dcecb8fbf2e2cddd64ba8d6cddbcc5aaa643fcb52c03713ddc4893
|
data/.travis.yml
CHANGED
@@ -12,7 +12,7 @@ matrix:
|
|
12
12
|
- rvm: jruby-head
|
13
13
|
|
14
14
|
env:
|
15
|
-
-
|
15
|
+
- PATH=$PATH:$HOME/gradle/bin
|
16
16
|
|
17
17
|
notifications:
|
18
18
|
email:
|
@@ -25,7 +25,7 @@ notifications:
|
|
25
25
|
before_install:
|
26
26
|
- cd /tmp
|
27
27
|
- wget http://services.gradle.org/distributions/gradle-1.11-all.zip
|
28
|
-
- unzip gradle*
|
28
|
+
- unzip -q gradle*
|
29
29
|
- rm gradle*.zip
|
30
30
|
- mv gradle* ~/gradle
|
31
31
|
- cd -
|
data/CHANGELOG.rdoc
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
=== 1.2 / 2014-11-10
|
2
|
+
|
3
|
+
* Features
|
4
|
+
|
5
|
+
* Adding support for CocoaPods >= 0.34. (#118)
|
6
|
+
* For dependencies with multiple licenses, the name of each license is
|
7
|
+
listed, and if any are whitelisted, the dependency is whitelisted
|
8
|
+
* Added `--debug` option when scanning, to provide details on
|
9
|
+
packages, dependencies and where each license was discovered.
|
10
|
+
|
1
11
|
=== 1.1.1 / 2014-07-29
|
2
12
|
|
3
13
|
* Bugfixes
|
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,363 @@
|
|
1
|
+
# License Finder
|
2
|
+
|
3
|
+
[![Build Status](https://secure.travis-ci.org/pivotal/LicenseFinder.png)](http://travis-ci.org/pivotal/LicenseFinder)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/pivotal/LicenseFinder.png)](https://codeclimate.com/github/pivotal/LicenseFinder)
|
5
|
+
|
6
|
+
LicenseFinder works with your package managers to find dependencies,
|
7
|
+
detect the licenses of the packages in them, compare those licenses
|
8
|
+
against a user-defined whitelist, and give you an actionable exception
|
9
|
+
report.
|
10
|
+
|
11
|
+
* code: https://github.com/pivotal/LicenseFinder
|
12
|
+
* support:
|
13
|
+
* license-finder@googlegroups.com
|
14
|
+
* https://groups.google.com/forum/#!forum/license-finder
|
15
|
+
* backlog: https://www.pivotaltracker.com/s/projects/234851
|
16
|
+
|
17
|
+
### Supported project types
|
18
|
+
|
19
|
+
* Ruby Gems (via `bundler`)
|
20
|
+
* Python Eggs (via `pip`)
|
21
|
+
* Node.js (via `npm`)
|
22
|
+
* Bower
|
23
|
+
|
24
|
+
### Experimental project types
|
25
|
+
|
26
|
+
* Java (via `maven`)
|
27
|
+
* Java (via `gradle`)
|
28
|
+
* Objective-C (+ CocoaPods)
|
29
|
+
|
30
|
+
|
31
|
+
## Installation
|
32
|
+
|
33
|
+
The easiest way to use `license_finder` is to install it as a command
|
34
|
+
line tool, like brew, awk, gem or bundler:
|
35
|
+
|
36
|
+
```sh
|
37
|
+
$ gem install license_finder
|
38
|
+
```
|
39
|
+
|
40
|
+
Though it's less preferable, if you are using bundler in a Ruby
|
41
|
+
project, you can add `license_finder` to your Gemfile:
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
gem 'license_finder', :group => :development
|
45
|
+
```
|
46
|
+
|
47
|
+
This approach helps you remember to install `license_finder`, but can
|
48
|
+
pull in unwanted dependencies, including `bundler`. To mitigate this
|
49
|
+
problem, see ignored_groups in [Configuration](#configuration).
|
50
|
+
|
51
|
+
|
52
|
+
## Usage
|
53
|
+
|
54
|
+
`license_finder` will generate reports of action items; i.e.,
|
55
|
+
dependencies that do not fall within your license "whitelist".
|
56
|
+
|
57
|
+
```sh
|
58
|
+
$ license_finder
|
59
|
+
```
|
60
|
+
|
61
|
+
Or, if you installed with bundler:
|
62
|
+
|
63
|
+
```sh
|
64
|
+
$ bundle exec license_finder
|
65
|
+
```
|
66
|
+
|
67
|
+
If you don't wish to see progressive output "dots", use the `--quiet`
|
68
|
+
option.
|
69
|
+
|
70
|
+
If you'd like to see debugging output, use the `--debug`
|
71
|
+
option. `license_finder` will then output info about packages, their
|
72
|
+
dependencies, and where and how each license was discovered. This can
|
73
|
+
be useful when you need to track down an unexpected package or
|
74
|
+
license.
|
75
|
+
|
76
|
+
Run `license_finder help` to see other available commands, and
|
77
|
+
`license_finder help [COMMAND]` for detailed help on a specific
|
78
|
+
command.
|
79
|
+
|
80
|
+
|
81
|
+
### Activation
|
82
|
+
|
83
|
+
`license_finder` will find and include packages for all supported
|
84
|
+
languages, as long as that language has a package definition in the project directory:
|
85
|
+
|
86
|
+
* `Gemfile` (for `bundler`)
|
87
|
+
* `requirements.txt` (for `pip`)
|
88
|
+
* `package.json` (for `npm`)
|
89
|
+
* `pom.xml` (for `maven`)
|
90
|
+
* `build.gradle` (for `gradle`)
|
91
|
+
* `bower.json` (for `bower`)
|
92
|
+
* `Podfile` (for CocoaPods)
|
93
|
+
|
94
|
+
|
95
|
+
### Continuous Integration
|
96
|
+
|
97
|
+
`license_finder` will also return a non-zero exit status if there are
|
98
|
+
unapproved dependencies. This can be useful for inclusion in a CI
|
99
|
+
environment to alert you if someone adds an unapproved dependency to
|
100
|
+
the project.
|
101
|
+
|
102
|
+
|
103
|
+
## Output and Artifacts
|
104
|
+
|
105
|
+
### STDOUT
|
106
|
+
|
107
|
+
On a Rails project, you could expect `license_finder` to output
|
108
|
+
something like the following (assuming you whitelisted the MIT license
|
109
|
+
-- see [Configuration](#configuration)):
|
110
|
+
|
111
|
+
```
|
112
|
+
Dependencies that need approval:
|
113
|
+
|
114
|
+
highline, 1.6.14, ruby
|
115
|
+
json, 1.7.5, ruby
|
116
|
+
mime-types, 1.19, ruby
|
117
|
+
rails, 3.2.8, other
|
118
|
+
rdoc, 3.12, other
|
119
|
+
rubyzip, 0.9.9, ruby
|
120
|
+
xml-simple, 1.1.1, other
|
121
|
+
```
|
122
|
+
|
123
|
+
### Files and Reports
|
124
|
+
|
125
|
+
The executable task will also write out a `dependencies.db`,
|
126
|
+
`dependencies.csv`, and `dependencies.html` file (in the `doc/`
|
127
|
+
directory by default -- see [Configuration](#configuration)).
|
128
|
+
|
129
|
+
The latter two files are human-readable reports that you could send to
|
130
|
+
your non-technical business partners, lawyers, etc.
|
131
|
+
|
132
|
+
The HTML report generated by `license_finder` shows a summary of the
|
133
|
+
project's dependencies and dependencies which need to be approved. The
|
134
|
+
project name at the top of the report can be set in
|
135
|
+
`config/license_finder.yml`.
|
136
|
+
|
137
|
+
|
138
|
+
## Manual Intervention
|
139
|
+
|
140
|
+
### Setting Licenses
|
141
|
+
|
142
|
+
When `license_finder` reports that a dependency's license is 'other',
|
143
|
+
you should manually research what the actual license is. When you
|
144
|
+
have established the real license, you can record it with:
|
145
|
+
|
146
|
+
```sh
|
147
|
+
$ license_finder license MIT my_unknown_dependency
|
148
|
+
```
|
149
|
+
|
150
|
+
This command would assign the MIT license to the dependency
|
151
|
+
`my_unknown_dependency`.
|
152
|
+
|
153
|
+
|
154
|
+
### Approving Dependencies
|
155
|
+
|
156
|
+
Whenever you have a dependency that falls outside of your whitelist,
|
157
|
+
`license_finder` will tell you. If your business decides that this is
|
158
|
+
an acceptable risk, you can manually approve the dependency by using
|
159
|
+
the `license_finder approve` command.
|
160
|
+
|
161
|
+
For example, let's assume you've only whitelisted the "MIT" license in
|
162
|
+
your `config/license_finder.yml`. You then add the `awesome_gpl_gem`
|
163
|
+
to your Gemfile, which we'll assume is licensed with the `GPL`
|
164
|
+
license. You then run `license_finder` and see the gem listed in the
|
165
|
+
output:
|
166
|
+
|
167
|
+
```sh
|
168
|
+
awesome_gpl_gem, 1.0.0, GPL
|
169
|
+
```
|
170
|
+
|
171
|
+
Your business tells you that in this case, it's acceptable to use this
|
172
|
+
gem. You now run:
|
173
|
+
|
174
|
+
```sh
|
175
|
+
$ license_finder approve awesome_gpl_gem
|
176
|
+
```
|
177
|
+
|
178
|
+
If you rerun `license_finder`, you should no longer see
|
179
|
+
`awesome_gpl_gem` in the output.
|
180
|
+
|
181
|
+
To record who approved the dependency and why:
|
182
|
+
|
183
|
+
```sh
|
184
|
+
$ license_finder approve awesome_gpl_gem --approver CTO --message "Go ahead"
|
185
|
+
```
|
186
|
+
|
187
|
+
|
188
|
+
### Adding Hidden Dependencies
|
189
|
+
|
190
|
+
`license_finder` can track dependencies that your package managers
|
191
|
+
don't know about (JS libraries that don't appear in your
|
192
|
+
Gemfile/requirements.txt/package.json, etc.)
|
193
|
+
|
194
|
+
```sh
|
195
|
+
$ license_finder dependencies add MIT my_js_dep 0.1.2
|
196
|
+
```
|
197
|
+
|
198
|
+
To automatically approve an unmanaged dependency when you add it, use:
|
199
|
+
|
200
|
+
```sh
|
201
|
+
$ license_finder dependencies add MIT my_js_dep 0.1.2 --approve
|
202
|
+
```
|
203
|
+
|
204
|
+
To record who approved the dependency when you add it, use:
|
205
|
+
|
206
|
+
```sh
|
207
|
+
$ license_finder dependencies add MIT my_js_dep 0.1.2 --approve --approver CTO --message "Go ahead"
|
208
|
+
```
|
209
|
+
|
210
|
+
The version is optional. Run `license_finder dependencies help` for
|
211
|
+
additional documentation about managing these dependencies.
|
212
|
+
|
213
|
+
`license_finder` cannot automatically detect when one of these
|
214
|
+
dependencies has been removed from your project, so you can use:
|
215
|
+
|
216
|
+
```sh
|
217
|
+
$ license_finder dependencies remove my_js_dep
|
218
|
+
```
|
219
|
+
|
220
|
+
|
221
|
+
## Configuration
|
222
|
+
|
223
|
+
The first time you run `license_finder` it will create a default
|
224
|
+
configuration file `./config/license_finder.yml`, which will look
|
225
|
+
something like this:
|
226
|
+
|
227
|
+
```yaml
|
228
|
+
---
|
229
|
+
whitelist:
|
230
|
+
#- MIT
|
231
|
+
#- Apache 2.0
|
232
|
+
ignore_groups:
|
233
|
+
#- test
|
234
|
+
#- development
|
235
|
+
ignore_dependencies:
|
236
|
+
#- bundler
|
237
|
+
dependencies_file_dir: './doc/'
|
238
|
+
project_name: My Project Name
|
239
|
+
gradle_command: # only meaningful if used with a Java/gradle project. Defaults to "gradle".
|
240
|
+
```
|
241
|
+
|
242
|
+
By modifying this file, you can configure `license_finder`'s behavior:
|
243
|
+
|
244
|
+
* Automatically approve licenses in the `whitelist`
|
245
|
+
* Exclude test or development dependencies by setting `ignore_groups`.
|
246
|
+
(Currently this only works for Bundler.)
|
247
|
+
* Exclude specific dependencies by setting `ignore_dependencies`.
|
248
|
+
(Think carefully before adding dependencies to this list. A likely
|
249
|
+
item to exclude is bundler itself, to avoid noisy changes to the doc
|
250
|
+
files when different people run `license_finder` with different
|
251
|
+
versions of bundler.)
|
252
|
+
* Store the license database and text files in another directory by
|
253
|
+
changing `dependencies_file_dir`.
|
254
|
+
* Set the HTML report title wih `project_name`, which defaults to the
|
255
|
+
name of the working directory.
|
256
|
+
* See below for explanation of "gradle_command".
|
257
|
+
|
258
|
+
You can also configure `license_finder` through the command line. See
|
259
|
+
`license_finder whitelist help`, `license_finder ignored_bundler_groups help`
|
260
|
+
and `license_finder project_name help` for more details.
|
261
|
+
|
262
|
+
|
263
|
+
### Gradle Projects
|
264
|
+
|
265
|
+
You need to install the license gradle plugin:
|
266
|
+
[https://github.com/hierynomus/license-gradle-plugin](https://github.com/hierynomus/license-gradle-plugin)
|
267
|
+
|
268
|
+
LicenseFinder assumes that gradle is in your shell's command path and
|
269
|
+
can be invoked by just calling `gradle`.
|
270
|
+
|
271
|
+
If you must invoke gradle some other way (e.g., with a custom
|
272
|
+
`gradlew` script), set the `gradle_command` option in your project's
|
273
|
+
`license_finder.yml`:
|
274
|
+
|
275
|
+
```yaml
|
276
|
+
# ... other configuration ...
|
277
|
+
gradle_command: ./gradlew
|
278
|
+
```
|
279
|
+
|
280
|
+
By default, `license_finder` will report on gradle's "runtime"
|
281
|
+
dependencies. If you want to generate a report for some other
|
282
|
+
dependency configuration (e.g. Android projects will sometimes specify
|
283
|
+
their meaningful dependencies in the "compile" group), you can specify
|
284
|
+
it in your project's `build.gradle`:
|
285
|
+
|
286
|
+
```
|
287
|
+
// Must come *after* the 'apply plugin: license' line
|
288
|
+
|
289
|
+
downloadLicenses {
|
290
|
+
dependencyConfiguration "compile"
|
291
|
+
}
|
292
|
+
```
|
293
|
+
|
294
|
+
|
295
|
+
## Upgrade for pre-0.8.0 users
|
296
|
+
|
297
|
+
If you wish to cleanup your root directory you can run:
|
298
|
+
|
299
|
+
```sh
|
300
|
+
$ license_finder move
|
301
|
+
```
|
302
|
+
|
303
|
+
This will move your `dependencies.*` files to the doc/ directory and update the config.
|
304
|
+
|
305
|
+
|
306
|
+
## Requirements
|
307
|
+
|
308
|
+
`license_finder` requires ruby >= 1.9, or jruby.
|
309
|
+
|
310
|
+
|
311
|
+
## A Plea to Package Authors and Maintainers
|
312
|
+
|
313
|
+
Please add a license to your package specs! Most packaging systems
|
314
|
+
allow for the specification of one or more licenses.
|
315
|
+
|
316
|
+
For example, Ruby Gems may have a license specified by name:
|
317
|
+
|
318
|
+
```ruby
|
319
|
+
Gem::Specification.new do |s|
|
320
|
+
s.name = "my_great_gem"
|
321
|
+
s.license = "MIT"
|
322
|
+
end
|
323
|
+
```
|
324
|
+
|
325
|
+
And add a `LICENSE` file to your package that contains your license text.
|
326
|
+
|
327
|
+
|
328
|
+
## Support
|
329
|
+
|
330
|
+
* Send an email to the list: [license-finder@googlegroups.com](license-finder@googlegroups.com)
|
331
|
+
* View the project backlog at Pivotal Tracker: [https://www.pivotaltracker.com/s/projects/234851](https://www.pivotaltracker.com/s/projects/234851)
|
332
|
+
|
333
|
+
|
334
|
+
## Contributing
|
335
|
+
|
336
|
+
* Fork the project from https://github.com/pivotal/LicenseFinder
|
337
|
+
* Create a feature branch.
|
338
|
+
* Make your feature addition or bug fix. Please make sure there is appropriate test coverage.
|
339
|
+
* Rebase on top of master.
|
340
|
+
* Send a pull request.
|
341
|
+
|
342
|
+
To successfully run the test suite, you will need node.js, python, pip
|
343
|
+
and gradle installed. If you run `rake check_dependencies`, you'll see
|
344
|
+
exactly what you're missing.
|
345
|
+
|
346
|
+
You'll need a gradle version >= 1.8.
|
347
|
+
|
348
|
+
For the python dependency tests you will want to have virtualenv
|
349
|
+
installed, to allow pip to work without sudo. For more details, see
|
350
|
+
this [post on virtualenv][].
|
351
|
+
|
352
|
+
[post on virtualenv]: http://hackercodex.com/guide/python-development-environment-on-mac-osx/#virtualenv
|
353
|
+
|
354
|
+
If you're running the test suite with jruby, you're probably going to
|
355
|
+
want to set up some environment variables:
|
356
|
+
|
357
|
+
```
|
358
|
+
JAVA_OPTS='-client -XX:+TieredCompilation -XX:TieredStopAtLevel=1' JRUBY_OPTS='-J-Djruby.launch.inproc=true'
|
359
|
+
```
|
360
|
+
|
361
|
+
## License
|
362
|
+
|
363
|
+
LicenseFinder is released under the MIT License. http://www.opensource.org/licenses/mit-license
|
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
|
+
require './lib/license_finder/platform'
|
4
5
|
require 'rspec/core/rake_task'
|
5
6
|
require 'cucumber'
|
6
7
|
require 'cucumber/rake/task'
|
@@ -14,8 +15,36 @@ end
|
|
14
15
|
|
15
16
|
desc "Run all cukes in features/"
|
16
17
|
Cucumber::Rake::Task.new(:features) do |t|
|
17
|
-
tags =
|
18
|
+
tags = LicenseFinder::Platform.darwin? ? "" : "--tags ~@ios"
|
18
19
|
t.cucumber_opts = "features --format pretty #{tags}"
|
19
20
|
end
|
20
21
|
|
22
|
+
desc "Check for non-Ruby development dependencies."
|
23
|
+
task :check_dependencies do
|
24
|
+
require "open3"
|
25
|
+
|
26
|
+
dependencies = {
|
27
|
+
"mvn" => "Maven",
|
28
|
+
"npm" => "node.js",
|
29
|
+
"pip" => "Python",
|
30
|
+
"gradle" => "Gradle"
|
31
|
+
}
|
32
|
+
dependencies["pod"] = "Cocoapods" if LicenseFinder::Platform.darwin?
|
33
|
+
satisfied = true
|
34
|
+
dependencies.each do |dependency, description|
|
35
|
+
printf "checking dev dependency for #{description} ... "
|
36
|
+
`which #{dependency}` ; status = $?
|
37
|
+
if status.success?
|
38
|
+
puts "OK"
|
39
|
+
else
|
40
|
+
puts "missing `#{dependency}`"
|
41
|
+
satisfied = false
|
42
|
+
end
|
43
|
+
end
|
44
|
+
exit 1 unless satisfied
|
45
|
+
end
|
46
|
+
|
47
|
+
task :spec => :check_dependencies
|
48
|
+
task :features => :check_dependencies
|
49
|
+
|
21
50
|
task :default => [:spec, :features]
|