tty 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -2
- data/.travis.yml +15 -4
- data/CHANGELOG.md +22 -0
- data/Gemfile +4 -7
- data/README.md +648 -58
- data/appveyor.yml +3 -4
- data/exe/teletype +18 -0
- data/lib/tty.rb +7 -4
- data/lib/tty/cli.rb +140 -0
- data/lib/tty/cmd.rb +132 -0
- data/lib/tty/commands/add.rb +321 -0
- data/lib/tty/commands/new.rb +256 -0
- data/lib/tty/gemspec.rb +30 -0
- data/lib/tty/licenses.rb +34 -0
- data/lib/tty/path_helpers.rb +38 -0
- data/lib/tty/plugins.rb +20 -12
- data/lib/tty/templater.rb +54 -0
- data/lib/tty/templates/add/command.rb.tt +31 -0
- data/lib/tty/templates/add/gitkeep.tt +1 -0
- data/lib/tty/templates/add/namespace.rb.tt +17 -0
- data/lib/tty/templates/add/spec/integration/command_spec.rb.tt +20 -0
- data/lib/tty/templates/add/spec/integration/sub_command_spec.rb.tt +16 -0
- data/lib/tty/templates/add/spec/unit/command_spec.rb.tt +15 -0
- data/lib/tty/templates/add/spec/unit/sub_command_spec.rb.tt +15 -0
- data/lib/tty/templates/add/test/integration/command_test.rb.tt +23 -0
- data/lib/tty/templates/add/test/integration/sub_command_test.rb.tt +19 -0
- data/lib/tty/templates/add/test/unit/command_test.rb.tt +16 -0
- data/lib/tty/templates/add/test/unit/sub_command_test.rb.tt +16 -0
- data/lib/tty/templates/new/agplv3_LICENSE.txt.tt +555 -0
- data/lib/tty/templates/new/apache_LICENSE.txt.tt +157 -0
- data/lib/tty/templates/new/bsd2_LICENSE.txt.tt +22 -0
- data/lib/tty/templates/new/bsd3_LICENSE.txt.tt +26 -0
- data/lib/tty/templates/new/exe/newcli.tt +18 -0
- data/lib/tty/templates/new/gitkeep.tt +1 -0
- data/lib/tty/templates/new/gplv2_LICENSE.txt.tt +255 -0
- data/lib/tty/templates/new/gplv3_LICENSE.txt.tt +543 -0
- data/lib/tty/templates/new/lgplv3_LICENSE.txt.tt +143 -0
- data/lib/tty/templates/new/lib/newcli/cli.rb.tt +24 -0
- data/lib/tty/templates/new/lib/newcli/command.rb.tt +124 -0
- data/lib/tty/templates/new/mit_LICENSE.txt.tt +20 -0
- data/lib/tty/templates/new/mplv2_LICENSE.txt.tt +277 -0
- data/lib/tty/version.rb +1 -1
- data/spec/fixtures/foo-0.0.1.gemspec +4 -4
- data/spec/integration/add_desc_args_spec.rb +341 -0
- data/spec/integration/add_force_spec.rb +98 -0
- data/spec/integration/add_namespaced_spec.rb +291 -0
- data/spec/integration/add_spec.rb +535 -0
- data/spec/integration/add_subcommand_spec.rb +259 -0
- data/spec/integration/new_author_spec.rb +19 -0
- data/spec/integration/new_license_spec.rb +39 -0
- data/spec/integration/new_namespaced_spec.rb +228 -0
- data/spec/integration/new_spec.rb +354 -0
- data/spec/integration/new_test_spec.rb +21 -0
- data/spec/integration/start_spec.rb +21 -0
- data/spec/spec_helper.rb +47 -16
- data/spec/unit/gemspec_spec.rb +17 -0
- data/spec/{tty/plugins/load_spec.rb → unit/plugins/activate_spec.rb} +2 -4
- data/spec/unit/plugins/load_from_spec.rb +28 -0
- data/spec/{tty → unit}/plugins/plugin/load_spec.rb +1 -3
- data/spec/{tty → unit}/plugins/plugin/new_spec.rb +1 -3
- data/spec/{tty → unit}/tty_spec.rb +1 -3
- data/tty.gemspec +25 -15
- metadata +186 -49
- data/spec/tty/plugins/find_spec.rb +0 -20
- data/tasks/metrics/cane.rake +0 -14
- data/tasks/metrics/flog.rake +0 -17
- data/tasks/metrics/heckle.rake +0 -15
- data/tasks/metrics/reek.rake +0 -13
@@ -0,0 +1,143 @@
|
|
1
|
+
GNU LESSER GENERAL PUBLIC LICENSE
|
2
|
+
|
3
|
+
Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc.
|
4
|
+
<http://fsf.org/>
|
5
|
+
|
6
|
+
Everyone is permitted to copy and distribute verbatim copies of this license
|
7
|
+
document, but changing it is not allowed.
|
8
|
+
|
9
|
+
This version of the GNU Lesser General Public License incorporates the terms and
|
10
|
+
conditions of version 3 of the GNU General Public License, supplemented by the
|
11
|
+
additional permissions listed below.
|
12
|
+
|
13
|
+
0. Additional Definitions.
|
14
|
+
|
15
|
+
As used herein, "this License" refers to version 3 of the GNU Lesser General
|
16
|
+
Public License, and the "GNU GPL" refers to version 3 of the GNU General Public
|
17
|
+
License.
|
18
|
+
|
19
|
+
"The Library" refers to a covered work governed by this License, other than an
|
20
|
+
Application or a Combined Work as defined below.
|
21
|
+
|
22
|
+
An "Application" is any work that makes use of an interface provided by the
|
23
|
+
Library, but which is not otherwise based on the Library. Defining a subclass of
|
24
|
+
a class defined by the Library is deemed a mode of using an interface provided
|
25
|
+
by the Library.
|
26
|
+
|
27
|
+
A "Combined Work" is a work produced by combining or linking an Application with
|
28
|
+
the Library. The particular version of the Library with which the Combined Work
|
29
|
+
was made is also called the "Linked Version".
|
30
|
+
|
31
|
+
The "Minimal Corresponding Source" for a Combined Work means the Corresponding
|
32
|
+
Source for the Combined Work, excluding any source code for portions of the
|
33
|
+
Combined Work that, considered in isolation, are based on the Application, and
|
34
|
+
not on the Linked Version.
|
35
|
+
|
36
|
+
The "Corresponding Application Code" for a Combined Work means the object code
|
37
|
+
and/or source code for the Application, including any data and utility programs
|
38
|
+
needed for reproducing the Combined Work from the Application, but excluding the
|
39
|
+
System Libraries of the Combined Work.
|
40
|
+
|
41
|
+
1. Exception to Section 3 of the GNU GPL. You may convey a covered work under
|
42
|
+
sections 3 and 4 of this License without being bound by section 3 of the GNU
|
43
|
+
GPL.
|
44
|
+
|
45
|
+
2. Conveying Modified Versions. If you modify a copy of the Library, and, in
|
46
|
+
your modifications, a facility refers to a function or data to be supplied by an
|
47
|
+
Application that uses the facility (other than as an argument passed when the
|
48
|
+
facility is invoked), then you may convey a copy of the modified version:
|
49
|
+
|
50
|
+
a) under this License, provided that you make a good faith effort to ensure
|
51
|
+
that, in the event an Application does not supply the function or data, the
|
52
|
+
facility still operates, and performs whatever part of its purpose remains
|
53
|
+
meaningful, or
|
54
|
+
|
55
|
+
b) under the GNU GPL, with none of the additional permissions of this License
|
56
|
+
applicable to that copy.
|
57
|
+
|
58
|
+
3. Object Code Incorporating Material from Library Header Files. The object
|
59
|
+
code form of an Application may incorporate material from a header file that is
|
60
|
+
part of the Library. You may convey such object code under terms of your choice,
|
61
|
+
provided that, if the incorporated material is not limited to numerical
|
62
|
+
parameters, data structure layouts and accessors, or small macros, inline
|
63
|
+
functions and templates (ten or fewer lines in length), you do both of the
|
64
|
+
following:
|
65
|
+
|
66
|
+
a) Give prominent notice with each copy of the object code that the Library is
|
67
|
+
used in it and that the Library and its use are covered by this License.
|
68
|
+
|
69
|
+
b) Accompany the object code with a copy of the GNU GPL and this license
|
70
|
+
document.
|
71
|
+
|
72
|
+
4. Combined Works. You may convey a Combined Work under terms of your choice
|
73
|
+
that, taken together, effectively do not restrict modification of the portions
|
74
|
+
of the Library contained in the Combined Work and reverse engineering for
|
75
|
+
debugging such modifications, if you also do each of the following:
|
76
|
+
|
77
|
+
a) Give prominent notice with each copy of the Combined Work that the Library is
|
78
|
+
used in it and that the Library and its use are covered by this License.
|
79
|
+
|
80
|
+
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
81
|
+
document.
|
82
|
+
|
83
|
+
c) For a Combined Work that displays copyright notices during execution, include
|
84
|
+
the copyright notice for the Library among these notices, as well as a reference
|
85
|
+
directing the user to the copies of the GNU GPL and this license document.
|
86
|
+
|
87
|
+
d) Do one of the following:
|
88
|
+
|
89
|
+
0) Convey the Minimal Corresponding Source under the terms of this License, and
|
90
|
+
the Corresponding Application Code in a form suitable for, and under terms that
|
91
|
+
permit, the user to recombine or relink the Application with a modified version
|
92
|
+
of the Linked Version to produce a modified Combined Work, in the manner
|
93
|
+
specified by section 6 of the GNU GPL for conveying Corresponding Source.
|
94
|
+
|
95
|
+
1) Use a suitable shared library mechanism for linking with the Library. A
|
96
|
+
suitable mechanism is one that (a) uses at run time a copy of the Library
|
97
|
+
already present on the user's computer system, and (b) will operate properly
|
98
|
+
with a modified version of the Library that is interface-compatible with the
|
99
|
+
Linked Version.
|
100
|
+
|
101
|
+
e) Provide Installation Information, but only if you would otherwise be required
|
102
|
+
to provide such information under section 6 of the GNU GPL, and only to the
|
103
|
+
extent that such information is necessary to install and execute a modified
|
104
|
+
version of the Combined Work produced by recombining or relinking the
|
105
|
+
Application with a modified version of the Linked Version. (If you use option
|
106
|
+
4d0, the Installation Information must accompany the Minimal Corresponding
|
107
|
+
Source and Corresponding Application Code. If you use option 4d1, you must
|
108
|
+
provide the Installation Information in the manner specified by section 6 of the
|
109
|
+
GNU GPL for conveying Corresponding Source.)
|
110
|
+
|
111
|
+
5. Combined Libraries. You may place library facilities that are a work based
|
112
|
+
on the Library side by side in a single library together with other library
|
113
|
+
facilities that are not Applications and are not covered by this License, and
|
114
|
+
convey such a combined library under terms of your choice, if you do both of the
|
115
|
+
following:
|
116
|
+
|
117
|
+
a) Accompany the combined library with a copy of the same work based on the
|
118
|
+
Library, uncombined with any other library facilities, conveyed under the terms
|
119
|
+
of this License.
|
120
|
+
|
121
|
+
b) Give prominent notice with the combined library that part of it is a work
|
122
|
+
based on the Library, and explaining where to find the accompanying uncombined
|
123
|
+
form of the same work.
|
124
|
+
|
125
|
+
6. Revised Versions of the GNU Lesser General Public License. The Free Software
|
126
|
+
Foundation may publish revised and/or new versions of the GNU Lesser General
|
127
|
+
Public License from time to time. Such new versions will be similar in spirit to
|
128
|
+
the present version, but may differ in detail to address new problems or
|
129
|
+
concerns.
|
130
|
+
|
131
|
+
Each version is given a distinguishing version number. If the Library as you
|
132
|
+
received it specifies that a certain numbered version of the GNU Lesser General
|
133
|
+
Public License "or any later version" applies to it, you have the option of
|
134
|
+
following the terms and conditions either of that published version or of any
|
135
|
+
later version published by the Free Software Foundation. If the Library as you
|
136
|
+
received it does not specify a version number of the GNU Lesser General Public
|
137
|
+
License, you may choose any version of the GNU Lesser General Public License
|
138
|
+
ever published by the Free Software Foundation.
|
139
|
+
|
140
|
+
If the Library as you received it specifies that a proxy can decide whether
|
141
|
+
future versions of the GNU Lesser General Public License shall apply, that
|
142
|
+
proxy's public statement of acceptance of any version is permanent authorization
|
143
|
+
for you to choose that version for the Library.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
|
5
|
+
<%- constantinized_parts.each_with_index do |const, i| -%>
|
6
|
+
<%= ' ' * i %>module <%= const %>
|
7
|
+
<%- end -%>
|
8
|
+
<%= indent %># Handle the application command line parsing
|
9
|
+
<%= indent %># and the dispatch to various command objects
|
10
|
+
<%= indent %>#
|
11
|
+
<%= indent %># @api public
|
12
|
+
<%= indent %>class CLI < Thor
|
13
|
+
<%= indent %> # Error raised by this runner
|
14
|
+
<%= indent %> Error = Class.new(StandardError)
|
15
|
+
|
16
|
+
<%= indent %> desc 'version', '<%= app_name %> version'
|
17
|
+
<%= indent %> def version
|
18
|
+
<%= indent %> require_relative 'version'
|
19
|
+
<%= indent %> puts "v#{<%= constantinized_name %>::VERSION}"
|
20
|
+
<%= indent %> end
|
21
|
+
<%= indent %> map %w(--version -v) => :version
|
22
|
+
<%- (constantinized_parts.size).downto(0) do |i| -%>
|
23
|
+
<%= ' ' * i %>end
|
24
|
+
<%- end -%>
|
@@ -0,0 +1,124 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'forwardable'
|
4
|
+
|
5
|
+
<%- constantinized_parts.each_with_index do |const, i| -%>
|
6
|
+
<%= ' ' * i %>module <%= const %>
|
7
|
+
<%- end -%>
|
8
|
+
<%= indent %>class Command
|
9
|
+
<%= indent %> extend Forwardable
|
10
|
+
|
11
|
+
<%= indent %> def_delegators :command, :run
|
12
|
+
|
13
|
+
<%= indent %> # Execute this command
|
14
|
+
<%= indent %> #
|
15
|
+
<%= indent %> # @api public
|
16
|
+
<%= indent %> def execute(*)
|
17
|
+
<%= indent %> raise(
|
18
|
+
<%= indent %> NotImplementedError,
|
19
|
+
<%= indent %> "#{self.class}##{__method__} must be implemented"
|
20
|
+
<%= indent %> )
|
21
|
+
<%= indent %> end
|
22
|
+
|
23
|
+
<%= indent %> # The external commands runner
|
24
|
+
<%= indent %> #
|
25
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-command
|
26
|
+
<%= indent %> #
|
27
|
+
<%= indent %> # @api public
|
28
|
+
<%= indent %> def command(**options)
|
29
|
+
<%= indent %> require 'tty-command'
|
30
|
+
<%= indent %> TTY::Command.new(options)
|
31
|
+
<%= indent %> end
|
32
|
+
|
33
|
+
<%= indent %> # The cursor movement
|
34
|
+
<%= indent %> #
|
35
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-cursor
|
36
|
+
<%= indent %> #
|
37
|
+
<%= indent %> # @api public
|
38
|
+
<%= indent %> def cursor
|
39
|
+
<%= indent %> require 'tty-cursor'
|
40
|
+
<%= indent %> TTY::Cursor
|
41
|
+
<%= indent %> end
|
42
|
+
|
43
|
+
<%= indent %> # Open a file or text in the user's preferred editor
|
44
|
+
<%= indent %> #
|
45
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-editor
|
46
|
+
<%= indent %> #
|
47
|
+
<%= indent %> # @api public
|
48
|
+
<%= indent %> def editor
|
49
|
+
<%= indent %> require 'tty-editor'
|
50
|
+
<%= indent %> TTY::Editor
|
51
|
+
<%= indent %> end
|
52
|
+
|
53
|
+
<%= indent %> # File manipulation utility methods
|
54
|
+
<%= indent %> #
|
55
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-file
|
56
|
+
<%= indent %> #
|
57
|
+
<%= indent %> # @api public
|
58
|
+
<%= indent %> def generator
|
59
|
+
<%= indent %> require 'tty-file'
|
60
|
+
<%= indent %> TTY::File
|
61
|
+
<%= indent %> end
|
62
|
+
|
63
|
+
<%= indent %> # Terminal output paging
|
64
|
+
<%= indent %> #
|
65
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-pager
|
66
|
+
<%= indent %> #
|
67
|
+
<%= indent %> # @api public
|
68
|
+
<%= indent %> def pager(**options)
|
69
|
+
<%= indent %> require 'tty-pager'
|
70
|
+
<%= indent %> TTY::Pager.new(options)
|
71
|
+
<%= indent %> end
|
72
|
+
|
73
|
+
<%= indent %> # Terminal platform and OS properties
|
74
|
+
<%= indent %> #
|
75
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-pager
|
76
|
+
<%= indent %> #
|
77
|
+
<%= indent %> # @api public
|
78
|
+
<%= indent %> def platform
|
79
|
+
<%= indent %> require 'tty-platform'
|
80
|
+
<%= indent %> TTY::Platform.new
|
81
|
+
<%= indent %> end
|
82
|
+
|
83
|
+
<%= indent %> # The interactive prompt
|
84
|
+
<%= indent %> #
|
85
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-prompt
|
86
|
+
<%= indent %> #
|
87
|
+
<%= indent %> # @api public
|
88
|
+
<%= indent %> def prompt(**options)
|
89
|
+
<%= indent %> require 'tty-prompt'
|
90
|
+
<%= indent %> TTY::Prompt.new(options)
|
91
|
+
<%= indent %> end
|
92
|
+
|
93
|
+
<%= indent %> # Get terminal screen properties
|
94
|
+
<%= indent %> #
|
95
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-screen
|
96
|
+
<%= indent %> #
|
97
|
+
<%= indent %> # @api public
|
98
|
+
<%= indent %> def screen
|
99
|
+
<%= indent %> require 'tty-screen'
|
100
|
+
<%= indent %> TTY::Screen
|
101
|
+
<%= indent %> end
|
102
|
+
|
103
|
+
<%= indent %> # The unix which utility
|
104
|
+
<%= indent %> #
|
105
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-which
|
106
|
+
<%= indent %> #
|
107
|
+
<%= indent %> # @api public
|
108
|
+
<%= indent %> def which(*args)
|
109
|
+
<%= indent %> require 'tty-which'
|
110
|
+
<%= indent %> TTY::Which.which(*args)
|
111
|
+
<%= indent %> end
|
112
|
+
|
113
|
+
<%= indent %> # Check if executable exists
|
114
|
+
<%= indent %> #
|
115
|
+
<%= indent %> # @see http://www.rubydoc.info/gems/tty-which
|
116
|
+
<%= indent %> #
|
117
|
+
<%= indent %> # @api public
|
118
|
+
<%= indent %> def exec_exist?(*args)
|
119
|
+
<%= indent %> require 'tty-which'
|
120
|
+
<%= indent %> TTY::Which.exist?(*args)
|
121
|
+
<%= indent %> end
|
122
|
+
<%- (constantinized_parts.size).downto(0) do |i| -%>
|
123
|
+
<%= ' ' * i %>end
|
124
|
+
<%- end -%>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) <%= Time.now.year %> <%= author %>
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6
|
+
this software and associated documentation files (the "Software"), to deal in
|
7
|
+
the Software without restriction, including without limitation the rights to
|
8
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10
|
+
subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,277 @@
|
|
1
|
+
Mozilla Public License Version 2.0
|
2
|
+
|
3
|
+
1. Definitions
|
4
|
+
|
5
|
+
1.1. "Contributor" means each individual or legal entity that creates,
|
6
|
+
contributes to the creation of, or owns Covered Software.
|
7
|
+
|
8
|
+
1.2. "Contributor Version" means the combination of the Contributions of others
|
9
|
+
(if any) used by a Contributor and that particular Contributor's Contribution.
|
10
|
+
|
11
|
+
1.3. "Contribution" means Covered Software of a particular Contributor.
|
12
|
+
|
13
|
+
1.4. "Covered Software" means Source Code Form to which the initial Contributor
|
14
|
+
has attached the notice in Exhibit A, the Executable Form of such Source Code
|
15
|
+
Form, and Modifications of such Source Code Form, in each case including
|
16
|
+
portions thereof.
|
17
|
+
|
18
|
+
1.5. "Incompatible With Secondary Licenses" means
|
19
|
+
|
20
|
+
(a) that the initial Contributor has attached the notice described in Exhibit B
|
21
|
+
to the Covered Software; or
|
22
|
+
|
23
|
+
(b) that the Covered Software was made available under the terms of version 1.1
|
24
|
+
or earlier of the License, but not also under the terms of a Secondary License.
|
25
|
+
|
26
|
+
1.6. "Executable Form" means any form of the work other than Source Code Form.
|
27
|
+
|
28
|
+
1.7. "Larger Work" means a work that combines Covered Software with other
|
29
|
+
material, in a separate file or files, that is not Covered Software.
|
30
|
+
|
31
|
+
1.8. "License" means this document.
|
32
|
+
|
33
|
+
1.9. "Licensable" means having the right to grant, to the maximum extent
|
34
|
+
possible, whether at the time of the initial grant or subsequently, any and all
|
35
|
+
of the rights conveyed by this License.
|
36
|
+
|
37
|
+
1.10. "Modifications" means any of the following:
|
38
|
+
|
39
|
+
(a) any file in Source Code Form that results from an addition to, deletion
|
40
|
+
from, or modification of the contents of Covered Software; or
|
41
|
+
|
42
|
+
(b) any new file in Source Code Form that contains any Covered Software.
|
43
|
+
|
44
|
+
1.11. "Patent Claims" of a Contributor means any patent claim(s), including
|
45
|
+
without limitation, method, process, and apparatus claims, in any patent
|
46
|
+
Licensable by such Contributor that would be infringed, but for the grant of the
|
47
|
+
License, by the making, using, selling, offering for sale, having made, import,
|
48
|
+
or transfer of either its Contributions or its Contributor Version.
|
49
|
+
|
50
|
+
1.12. "Secondary License" means either the GNU General Public License, Version
|
51
|
+
2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General
|
52
|
+
Public License, Version 3.0, or any later versions of those licenses.
|
53
|
+
|
54
|
+
1.13. "Source Code Form" means the form of the work preferred for making
|
55
|
+
modifications.
|
56
|
+
|
57
|
+
1.14. "You" (or "Your") means an individual or a legal entity exercising rights
|
58
|
+
under this License. For legal entities, "You" includes any entity that controls,
|
59
|
+
is controlled by, or is under common control with You. For purposes of this
|
60
|
+
definition, "control" means (a) the power, direct or indirect, to cause the
|
61
|
+
direction or management of such entity, whether by contract or otherwise, or (b)
|
62
|
+
ownership of more than fifty percent (50%) of the outstanding shares or
|
63
|
+
beneficial ownership of such entity.
|
64
|
+
|
65
|
+
2. License Grants and Conditions
|
66
|
+
|
67
|
+
2.1. Grants Each Contributor hereby grants You a world-wide, royalty-free,
|
68
|
+
non-exclusive license:
|
69
|
+
|
70
|
+
(a) under intellectual property rights (other than patent or trademark)
|
71
|
+
Licensable by such Contributor to use, reproduce, make available, modify,
|
72
|
+
display, perform, distribute, and otherwise exploit its Contributions, either on
|
73
|
+
an unmodified basis, with Modifications, or as part of a Larger Work; and
|
74
|
+
|
75
|
+
(b) under Patent Claims of such Contributor to make, use, sell, offer for sale,
|
76
|
+
have made, import, and otherwise transfer either its Contributions or its
|
77
|
+
Contributor Version.
|
78
|
+
|
79
|
+
2.2. Effective Date The licenses granted in Section 2.1 with respect to any
|
80
|
+
Contribution become effective for each Contribution on the date the Contributor
|
81
|
+
first distributes such Contribution.
|
82
|
+
|
83
|
+
2.3. Limitations on Grant Scope The licenses granted in this Section 2 are the
|
84
|
+
only rights granted under this License. No additional rights or licenses will be
|
85
|
+
implied from the distribution or licensing of Covered Software under this
|
86
|
+
License. Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
87
|
+
Contributor:
|
88
|
+
|
89
|
+
(a) for any code that a Contributor has removed from Covered Software; or
|
90
|
+
|
91
|
+
(b) for infringements caused by: (i) Your and any other third party's
|
92
|
+
modifications of Covered Software, or (ii) the combination of its Contributions
|
93
|
+
with other software (except as part of its Contributor Version); or
|
94
|
+
|
95
|
+
(c) under Patent Claims infringed by Covered Software in the absence of its
|
96
|
+
Contributions.
|
97
|
+
|
98
|
+
This License does not grant any rights in the trademarks, service marks, or
|
99
|
+
logos of any Contributor (except as may be necessary to comply with the notice
|
100
|
+
requirements in Section 3.4).
|
101
|
+
|
102
|
+
2.4. Subsequent Licenses No Contributor makes additional grants as a result of
|
103
|
+
Your choice to distribute the Covered Software under a subsequent version of
|
104
|
+
this License (see Section 10.2) or under the terms of a Secondary License (if
|
105
|
+
permitted under the terms of Section 3.3).
|
106
|
+
|
107
|
+
2.5. Representation Each Contributor represents that the Contributor believes
|
108
|
+
its Contributions are its original creation(s) or it has sufficient rights to
|
109
|
+
grant the rights to its Contributions conveyed by this License.
|
110
|
+
|
111
|
+
2.6. Fair Use This License is not intended to limit any rights You have under
|
112
|
+
applicable copyright doctrines of fair use, fair dealing, or other equivalents.
|
113
|
+
|
114
|
+
2.7. Conditions Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses
|
115
|
+
granted in Section 2.1.
|
116
|
+
|
117
|
+
3. Responsibilities
|
118
|
+
|
119
|
+
3.1. Distribution of Source Form All distribution of Covered Software in Source
|
120
|
+
Code Form, including any Modifications that You create or to which You
|
121
|
+
contribute, must be under the terms of this License. You must inform recipients
|
122
|
+
that the Source Code Form of the Covered Software is governed by the terms of
|
123
|
+
this License, and how they can obtain a copy of this License. You may not
|
124
|
+
attempt to alter or restrict the recipients' rights in the Source Code Form.
|
125
|
+
|
126
|
+
3.2. Distribution of Executable Form If You distribute Covered Software in
|
127
|
+
Executable Form then:
|
128
|
+
|
129
|
+
(a) such Covered Software must also be made available in Source Code Form, as
|
130
|
+
described in Section 3.1, and You must inform recipients of the Executable Form
|
131
|
+
how they can obtain a copy of such Source Code Form by reasonable means in a
|
132
|
+
timely manner, at a charge no more than the cost of distribution to the
|
133
|
+
recipient; and
|
134
|
+
|
135
|
+
(b) You may distribute such Executable Form under the terms of this License, or
|
136
|
+
sublicense it under different terms, provided that the license for the
|
137
|
+
Executable Form does not attempt to limit or alter the recipients' rights in the
|
138
|
+
Source Code Form under this License.
|
139
|
+
|
140
|
+
3.3. Distribution of a Larger Work You may create and distribute a Larger Work
|
141
|
+
under terms of Your choice, provided that You also comply with the requirements
|
142
|
+
of this License for the Covered Software. If the Larger Work is a combination of
|
143
|
+
Covered Software with a work governed by one or more Secondary Licenses, and the
|
144
|
+
Covered Software is not Incompatible With Secondary Licenses, this License
|
145
|
+
permits You to additionally distribute such Covered Software under the terms of
|
146
|
+
such Secondary License(s), so that the recipient of the Larger Work may, at
|
147
|
+
their option, further distribute the Covered Software under the terms of either
|
148
|
+
this License or such Secondary License(s).
|
149
|
+
|
150
|
+
3.4. Notices You may not remove or alter the substance of any license notices
|
151
|
+
(including copyright notices, patent notices, disclaimers of warranty, or
|
152
|
+
limitations of liability) contained within the Source Code Form of the Covered
|
153
|
+
Software, except that You may alter any license notices to the extent required
|
154
|
+
to remedy known factual inaccuracies.
|
155
|
+
|
156
|
+
3.5. Application of Additional Terms You may choose to offer, and to charge a
|
157
|
+
fee for, warranty, support, indemnity or liability obligations to one or more
|
158
|
+
recipients of Covered Software. However, You may do so only on Your own behalf,
|
159
|
+
and not on behalf of any Contributor. You must make it absolutely clear that any
|
160
|
+
such warranty, support, indemnity, or liability obligation is offered by You
|
161
|
+
alone, and You hereby agree to indemnify every Contributor for any liability
|
162
|
+
incurred by such Contributor as a result of warranty, support, indemnity or
|
163
|
+
liability terms You offer. You may include additional disclaimers of warranty
|
164
|
+
and limitations of liability specific to any jurisdiction.
|
165
|
+
|
166
|
+
4. Inability to Comply Due to Statute or Regulation If it is impossible for You
|
167
|
+
to comply with any of the terms of this License with respect to some or all of
|
168
|
+
the Covered Software due to statute, judicial order, or regulation then You
|
169
|
+
must: (a) comply with the terms of this License to the maximum extent possible;
|
170
|
+
and (b) describe the limitations and the code they affect. Such description must
|
171
|
+
be placed in a text file included with all distributions of the Covered Software
|
172
|
+
under this License. Except to the extent prohibited by statute or regulation,
|
173
|
+
such description must be sufficiently detailed for a recipient of ordinary skill
|
174
|
+
to be able to understand it.
|
175
|
+
|
176
|
+
5. Termination
|
177
|
+
|
178
|
+
5.1. The rights granted under this License will terminate automatically if You
|
179
|
+
fail to comply with any of its terms. However, if You become compliant, then the
|
180
|
+
rights granted under this License from a particular Contributor are reinstated
|
181
|
+
(a) provisionally, unless and until such Contributor explicitly and finally
|
182
|
+
terminates Your grants, and (b) on an ongoing basis, if such Contributor fails
|
183
|
+
to notify You of the non-compliance by some reasonable means prior to 60 days
|
184
|
+
after You have come back into compliance. Moreover, Your grants from a
|
185
|
+
particular Contributor are reinstated on an ongoing basis if such Contributor
|
186
|
+
notifies You of the non-compliance by some reasonable means, this is the first
|
187
|
+
time You have received notice of non-compliance with this License from such
|
188
|
+
Contributor, and You become compliant prior to 30 days after Your receipt of the
|
189
|
+
notice.
|
190
|
+
|
191
|
+
5.2. If You initiate litigation against any entity by asserting a patent
|
192
|
+
infringement claim (excluding declaratory judgment actions, counter-claims, and
|
193
|
+
cross-claims) alleging that a Contributor Version directly or indirectly
|
194
|
+
infringes any patent, then the rights granted to You by any and all Contributors
|
195
|
+
for the Covered Software under Section 2.1 of this License shall terminate.
|
196
|
+
|
197
|
+
5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
|
198
|
+
license agreements (excluding distributors and resellers) which have been
|
199
|
+
validly granted by You or Your distributors under this License prior to
|
200
|
+
termination shall survive termination.
|
201
|
+
|
202
|
+
6. Disclaimer of Warranty Covered Software is provided under this License on an
|
203
|
+
"as is" basis, without warranty of any kind, either expressed, implied, or
|
204
|
+
statutory, including, without limitation, warranties that the Covered Software
|
205
|
+
is free of defects, merchantable, fit for a particular purpose or
|
206
|
+
non-infringing. The entire risk as to the quality and performance of the Covered
|
207
|
+
Software is with You. Should any Covered Software prove defective in any
|
208
|
+
respect, You (not any Contributor) assume the cost of any necessary servicing,
|
209
|
+
repair, or correction. This disclaimer of warranty constitutes an essential part
|
210
|
+
of this License. No use of any Covered Software is authorized under this License
|
211
|
+
except under this disclaimer.
|
212
|
+
|
213
|
+
7. Limitation of Liability Under no circumstances and under no legal theory,
|
214
|
+
whether tort (including negligence), contract, or otherwise, shall any
|
215
|
+
Contributor, or anyone who distributes Covered Software as permitted above, be
|
216
|
+
liable to You for any direct, indirect, special, incidental, or consequential
|
217
|
+
damages of any character including, without limitation, damages for lost
|
218
|
+
profits, loss of goodwill, work stoppage, computer failure or malfunction, or
|
219
|
+
any and all other commercial damages or losses, even if such party shall have
|
220
|
+
been informed of the possibility of such damages. This limitation of liability
|
221
|
+
shall not apply to liability for death or personal injury resulting from such
|
222
|
+
party's negligence to the extent applicable law prohibits such limitation. Some
|
223
|
+
jurisdictions do not allow the exclusion or limitation of incidental or
|
224
|
+
consequential damages, so this exclusion and limitation may not apply to You.
|
225
|
+
|
226
|
+
8. Litigation Any litigation relating to this License may be brought only in the
|
227
|
+
courts of a jurisdiction where the defendant maintains its principal place of
|
228
|
+
business and such litigation shall be governed by laws of that jurisdiction,
|
229
|
+
without reference to its conflict-of-law provisions. Nothing in this Section
|
230
|
+
shall prevent a party's ability to bring cross-claims or counter-claims.
|
231
|
+
|
232
|
+
9. Miscellaneous This License represents the complete agreement concerning the
|
233
|
+
subject matter hereof. If any provision of this License is held to be
|
234
|
+
unenforceable, such provision shall be reformed only to the extent necessary to
|
235
|
+
make it enforceable. Any law or regulation which provides that the language of a
|
236
|
+
contract shall be construed against the drafter shall not be used to construe
|
237
|
+
this License against a Contributor.
|
238
|
+
|
239
|
+
10. Versions of the License
|
240
|
+
|
241
|
+
10.1. New Versions Mozilla Foundation is the license steward. Except as provided
|
242
|
+
in Section 10.3, no one other than the license steward has the right to modify
|
243
|
+
or publish new versions of this License. Each version will be given a
|
244
|
+
distinguishing version number.
|
245
|
+
|
246
|
+
10.2. Effect of New Versions You may distribute the Covered Software under the
|
247
|
+
terms of the version of the License under which You originally received the
|
248
|
+
Covered Software, or under the terms of any subsequent version published by the
|
249
|
+
license steward.
|
250
|
+
|
251
|
+
10.3. Modified Versions If you create software not governed by this License, and
|
252
|
+
you want to create a new license for such software, you may create and use a
|
253
|
+
modified version of this License if you rename the license and remove any
|
254
|
+
references to the name of the license steward (except to note that such modified
|
255
|
+
license differs from this License).
|
256
|
+
|
257
|
+
10.4. Distributing Source Code Form that is Incompatible With Secondary Licenses
|
258
|
+
If You choose to distribute Source Code Form that is Incompatible With Secondary
|
259
|
+
Licenses under the terms of this version of the License, the notice described in
|
260
|
+
Exhibit B of this License must be attached.
|
261
|
+
|
262
|
+
Exhibit A - Source Code Form License Notice
|
263
|
+
|
264
|
+
This Source Code Form is subject to the terms of the Mozilla Public License, v.
|
265
|
+
2.0. If a copy of the MPL was not distributed with this file, You can obtain one
|
266
|
+
at http://mozilla.org/MPL/2.0/.
|
267
|
+
|
268
|
+
If it is not possible or desirable to put the notice in a particular file, then
|
269
|
+
You may include the notice in a location (such as a LICENSE file in a relevant
|
270
|
+
directory) where a recipient would be likely to look for such a notice.
|
271
|
+
|
272
|
+
You may add additional accurate notices of copyright ownership.
|
273
|
+
|
274
|
+
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
275
|
+
|
276
|
+
This Source Code Form is "Incompatible With Secondary Licenses", as defined by
|
277
|
+
the Mozilla Public License, v. 2.0.
|