copyright-header 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +30 -6
- data/lib/copyright_header/command_line.rb +19 -10
- data/lib/copyright_header/parser.rb +2 -2
- data/lib/copyright_header/version.rb +1 -1
- data/licenses/AGPL3.erb +17 -0
- metadata +5 -9
data/README.md
CHANGED
@@ -35,24 +35,24 @@ Usage
|
|
35
35
|
|
36
36
|
Full list of supported arguments:
|
37
37
|
|
38
|
-
Usage: copyright-header options [file]
|
38
|
+
Usage: bin/copyright-header options [file]
|
39
39
|
-n, --dry-run Output the parsed files to STDOUT
|
40
40
|
-o, --output-dir DIR Use DIR as output directory
|
41
|
-
--license-file FILE Use FILE as header
|
42
|
-
--license [GPL3|MIT]
|
41
|
+
--license-file FILE Use FILE as header (instead of using --license argument)
|
42
|
+
--license [AGPL3|BSD-2-CLAUSE|BSD-3-CLAUSE|BSD-4-CLAUSE|GPL3|MIT]
|
43
|
+
Use LICENSE as header
|
43
44
|
--copyright-software NAME The common name for this piece of software (e.g. "Copyright Header")
|
44
45
|
--copyright-software-description DESC
|
45
46
|
The common name for this piece of software (e.g. "A utility to manipulate copyright headers on source code files")
|
46
47
|
--copyright-holder NAME The common name for this piece of software (e.g. "Erik Osterman <e@osterman.com>"). Repeat argument for multiple names.
|
47
48
|
--copyright-year YEAR The common name for this piece of software (e.g. "2012"). Repeat argument for multiple years.
|
48
49
|
-w, --word-wrap LEN Maximum number of characters per line for license (default: 80)
|
49
|
-
-a, --add-path PATH Recursively insert header in all files found in path
|
50
|
-
-r, --remove-path PATH Recursively remove header in all files found in path
|
50
|
+
-a, --add-path PATH Recursively insert header in all files found in path (allows multiple pathes separated by platform path-separator)
|
51
|
+
-r, --remove-path PATH Recursively remove header in all files found in path (allows multiple pathes separated by platform path-separator)
|
51
52
|
-c, --syntax FILE Syntax configuration file
|
52
53
|
-V, --version Display version information
|
53
54
|
-h, --help Display this screen
|
54
55
|
|
55
|
-
|
56
56
|
Examples
|
57
57
|
--------
|
58
58
|
|
@@ -84,6 +84,30 @@ Paths can be either files or directories. It will recursively traverse the direc
|
|
84
84
|
|
85
85
|
You can specify an alternative syntax configuration file using the `--syntax` argument.
|
86
86
|
|
87
|
+
Rake
|
88
|
+
----
|
89
|
+
|
90
|
+
the above example as rake task inside a Rakefile:
|
91
|
+
|
92
|
+
task :headers do
|
93
|
+
require 'rubygems'
|
94
|
+
require 'copyright_header'
|
95
|
+
|
96
|
+
args = {
|
97
|
+
:license => 'GPL3',
|
98
|
+
:copyright_software => 'Copyright Header',
|
99
|
+
:copyright_software_description => "A utility to manipulate copyright headers on source code files",
|
100
|
+
:copyright_holders => ['Erik Osterman <e@osterman.com>'],
|
101
|
+
:copyright_years => ['2012'],
|
102
|
+
:add_path => 'lib',
|
103
|
+
:output_dir => '.'
|
104
|
+
}
|
105
|
+
|
106
|
+
command_line = CopyrightHeader::CommandLine.new( args )
|
107
|
+
command_line.execute
|
108
|
+
end
|
109
|
+
|
110
|
+
|
87
111
|
Contributors
|
88
112
|
------------
|
89
113
|
|
@@ -21,17 +21,18 @@ require 'optparse'
|
|
21
21
|
|
22
22
|
module CopyrightHeader
|
23
23
|
class MissingArgumentException < Exception; end
|
24
|
+
class AmbiguousArgumentException < Exception; end
|
24
25
|
|
25
26
|
class CommandLine
|
26
27
|
attr_accessor :options, :parser, :optparse
|
27
28
|
def initialize(options = {})
|
28
29
|
begin
|
29
30
|
@options = options
|
30
|
-
@options[:base_path]
|
31
|
+
@options[:base_path] ||= File.expand_path File.dirname(__FILE__) + "/../../"
|
31
32
|
@optparse = OptionParser.new do |opts|
|
32
33
|
opts.banner = "Usage: #{$0} options [file]"
|
33
34
|
|
34
|
-
@options[:dry_run]
|
35
|
+
@options[:dry_run] ||= false
|
35
36
|
opts.on( '-n', '--dry-run', 'Output the parsed files to STDOUT' ) do
|
36
37
|
@options[:dry_run] = true
|
37
38
|
end
|
@@ -40,13 +41,12 @@ module CopyrightHeader
|
|
40
41
|
@options[:output_dir] = dir + '/'
|
41
42
|
end
|
42
43
|
|
43
|
-
opts.on( '--license-file FILE', 'Use FILE as header' ) do|file|
|
44
|
+
opts.on( '--license-file FILE', 'Use FILE as header (instead of using --license argument)' ) do|file|
|
44
45
|
@options[:license_file] = file
|
45
46
|
end
|
46
47
|
|
47
48
|
opts.on( '--license [' + Dir.glob(@options[:base_path] + '/licenses/*').map { |f| File.basename(f, '.erb') }.join('|') + ']', 'Use LICENSE as header' ) do|license|
|
48
49
|
@options[:license] = license
|
49
|
-
@options[:license_file] = @options[:base_path] + '/licenses/' + license + '.erb'
|
50
50
|
end
|
51
51
|
|
52
52
|
opts.on( '--copyright-software NAME', 'The common name for this piece of software (e.g. "Copyright Header")' ) do|name|
|
@@ -57,30 +57,30 @@ module CopyrightHeader
|
|
57
57
|
@options[:copyright_software_description] = desc
|
58
58
|
end
|
59
59
|
|
60
|
-
@options[:copyright_holders]
|
60
|
+
@options[:copyright_holders] ||= []
|
61
61
|
opts.on( '--copyright-holder NAME', 'The common name for this piece of software (e.g. "Erik Osterman <e@osterman.com>"). Repeat argument for multiple names.' ) do|name|
|
62
62
|
@options[:copyright_holders] << name
|
63
63
|
end
|
64
64
|
|
65
|
-
@options[:copyright_years]
|
65
|
+
@options[:copyright_years] ||= []
|
66
66
|
opts.on( '--copyright-year YEAR', 'The common name for this piece of software (e.g. "2012"). Repeat argument for multiple years.' ) do|year|
|
67
67
|
@options[:copyright_years] << year
|
68
68
|
end
|
69
69
|
|
70
|
-
@options[:word_wrap]
|
70
|
+
@options[:word_wrap] ||= 80
|
71
71
|
opts.on( '-w', '--word-wrap LEN', 'Maximum number of characters per line for license (default: 80)' ) do |len|
|
72
72
|
@options[:word_wrap] = len.to_i
|
73
73
|
end
|
74
74
|
|
75
|
-
opts.on( '-a', '--add-path PATH', 'Recursively insert header in all files found in path' ) do |path|
|
75
|
+
opts.on( '-a', '--add-path PATH', 'Recursively insert header in all files found in path (allows multiple pathes separated by platform path-separator)' ) do |path|
|
76
76
|
@options[:add_path] = path
|
77
77
|
end
|
78
78
|
|
79
|
-
opts.on( '-r', '--remove-path PATH', 'Recursively remove header in all files found in path' ) do |path|
|
79
|
+
opts.on( '-r', '--remove-path PATH', 'Recursively remove header in all files found in path (allows multiple pathes separated by platform path-separator)' ) do |path|
|
80
80
|
@options[:remove_path] = path
|
81
81
|
end
|
82
82
|
|
83
|
-
@options[:syntax]
|
83
|
+
@options[:syntax] ||= @options[:base_path] + '/contrib/syntax.yml'
|
84
84
|
opts.on( '-c', '--syntax FILE', 'Syntax configuration file' ) do |path|
|
85
85
|
@options[:syntax] = path
|
86
86
|
end
|
@@ -101,6 +101,15 @@ module CopyrightHeader
|
|
101
101
|
end
|
102
102
|
|
103
103
|
@optparse.parse!
|
104
|
+
|
105
|
+
unless @options[:license].nil?
|
106
|
+
unless @options[:license_file].nil?
|
107
|
+
raise AmbiguousArgumentException.new("Cannot pass both --license and --license-file arguments")
|
108
|
+
end
|
109
|
+
# get the license_file from the shiped files
|
110
|
+
@options[:license_file] ||= @options[:base_path] + '/licenses/' + @options[:license] + '.erb'
|
111
|
+
end
|
112
|
+
|
104
113
|
unless @options.has_key?(:license_file)
|
105
114
|
raise MissingArgumentException.new("Missing --license or --license-file argument")
|
106
115
|
end
|
@@ -176,11 +176,11 @@ module CopyrightHeader
|
|
176
176
|
|
177
177
|
def execute
|
178
178
|
if @options.has_key?(:add_path)
|
179
|
-
|
179
|
+
@options[:add_path].split(File::PATH_SEPARATOR).each { |path| add(path) }
|
180
180
|
end
|
181
181
|
|
182
182
|
if @options.has_key?(:remove_path)
|
183
|
-
|
183
|
+
@options[:add_path].split(File::PATH_SEPARATOR).each { |path| remove(path) }
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
data/licenses/AGPL3.erb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
<%=copyright_software%> - <%=copyright_software_description%>
|
2
|
+
Copyright (C) <%=copyright_years.join(', ')%> <%=copyright_holders.join(', ')%>
|
3
|
+
|
4
|
+
This file is part of <%=copyright_software%>.
|
5
|
+
|
6
|
+
<%=copyright_software%> is free software: you can redistribute it and/or modify
|
7
|
+
it under the terms of the GNU Affero General Public License as
|
8
|
+
published by the Free Software Foundation, either version 3 of the
|
9
|
+
License, or (at your option) any later version.
|
10
|
+
|
11
|
+
<%=copyright_software%> is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
GNU Affero General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU Affero General Public License
|
17
|
+
along with <%=copyright_software%>. If not, see <http://www.gnu.org/licenses/>.
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: copyright-header
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 29
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
7
|
- 0
|
9
|
-
-
|
10
|
-
version: 1.0.
|
8
|
+
- 7
|
9
|
+
version: 1.0.7
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Erik Osterman
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2012-
|
17
|
+
date: 2012-12-04 00:00:00 -08:00
|
19
18
|
default_executable:
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -45,6 +44,7 @@ files:
|
|
45
44
|
- lib/copyright_header/command_line.rb
|
46
45
|
- lib/copyright_header/parser.rb
|
47
46
|
- lib/copyright_header/version.rb
|
47
|
+
- licenses/AGPL3.erb
|
48
48
|
- licenses/BSD-2-CLAUSE.erb
|
49
49
|
- licenses/BSD-3-CLAUSE.erb
|
50
50
|
- licenses/BSD-4-CLAUSE.erb
|
@@ -60,27 +60,23 @@ rdoc_options: []
|
|
60
60
|
require_paths:
|
61
61
|
- lib
|
62
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
63
|
-
none: false
|
64
63
|
requirements:
|
65
64
|
- - ">="
|
66
65
|
- !ruby/object:Gem::Version
|
67
|
-
hash: 3
|
68
66
|
segments:
|
69
67
|
- 0
|
70
68
|
version: "0"
|
71
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
-
none: false
|
73
70
|
requirements:
|
74
71
|
- - ">="
|
75
72
|
- !ruby/object:Gem::Version
|
76
|
-
hash: 3
|
77
73
|
segments:
|
78
74
|
- 0
|
79
75
|
version: "0"
|
80
76
|
requirements: []
|
81
77
|
|
82
78
|
rubyforge_project: copyright-header
|
83
|
-
rubygems_version: 1.3.
|
79
|
+
rubygems_version: 1.3.6
|
84
80
|
signing_key:
|
85
81
|
specification_version: 3
|
86
82
|
summary: A utility to insert copyright headers into various types of source code files
|