binman 3.0.1 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,20 @@
1
- ------------------------------------------------------------------------------
2
- Version 3.0.1 (2012-02-02)
3
- ------------------------------------------------------------------------------
1
+ ## Version 3.1.0 (2012-02-06)
2
+
3
+ Minor:
4
+
5
+ * Added `binman help` command for use by non-Ruby bin scripts. See README
6
+ for usage examples from Perl, Python, Node.js, Tcl, AWK, and UNIX shell!
7
+
8
+ Patch:
9
+
10
+ * Replace `gem install binman --development` tip in `BinMan::conv()` with
11
+ `gem install md2man` tip because the former just hangs in RubyGems 1.8.
12
+
13
+ Other:
14
+
15
+ * Shorten markdown headings; improve documentation; clean up.
16
+
17
+ ## Version 3.0.1 (2012-02-02)
4
18
 
5
19
  Patch:
6
20
 
@@ -18,9 +32,7 @@ Other:
18
32
 
19
33
  * bundler suggests moving all dev deps into gemspec.
20
34
 
21
- ------------------------------------------------------------------------------
22
- Version 3.0.0 (2012-01-09)
23
- ------------------------------------------------------------------------------
35
+ ## Version 3.0.0 (2012-01-09)
24
36
 
25
37
  Major:
26
38
 
@@ -35,9 +47,7 @@ Minor:
35
47
 
36
48
  [1]: https://github.com/sunaku/md2man/commit/75d7a0064fa86f1c98dd01391ad82245fd387c20
37
49
 
38
- ------------------------------------------------------------------------------
39
- Version 2.0.0 (2011-12-06)
40
- ------------------------------------------------------------------------------
50
+ ## Version 2.0.0 (2011-12-06)
41
51
 
42
52
  Major:
43
53
 
@@ -54,9 +64,7 @@ Other:
54
64
 
55
65
  * Do not hard-code the version number in `binman/gemspec` helper.
56
66
 
57
- ------------------------------------------------------------------------------
58
- Version 1.1.0 (2011-11-05)
59
- ------------------------------------------------------------------------------
67
+ ## Version 1.1.0 (2011-11-05)
60
68
 
61
69
  Alert:
62
70
 
@@ -70,9 +78,7 @@ Minor:
70
78
  builds and includes your UNIX man page files in your gem packages and also
71
79
  adds binman as a runtime and development gem dependency.
72
80
 
73
- ------------------------------------------------------------------------------
74
- Version 1.0.0 (2011-10-13)
75
- ------------------------------------------------------------------------------
81
+ ## Version 1.0.0 (2011-10-13)
76
82
 
77
83
  Major:
78
84
 
@@ -98,9 +104,7 @@ Other:
98
104
 
99
105
  * README: explain dev deps and `man/` dir packaging.
100
106
 
101
- ------------------------------------------------------------------------------
102
- Version 0.1.2 (2011-10-13)
103
- ------------------------------------------------------------------------------
107
+ ## Version 0.1.2 (2011-10-13)
104
108
 
105
109
  Minor:
106
110
 
@@ -115,9 +119,7 @@ Other:
115
119
  [Redcarpet2]: https://github.com/tanoku/redcarpet
116
120
  [redcarpet-manpage]: http://rdoc.info/github/sunaku/redcarpet-manpage
117
121
 
118
- ------------------------------------------------------------------------------
119
- Version 0.1.1 (2011-10-13)
120
- ------------------------------------------------------------------------------
122
+ ## Version 0.1.1 (2011-10-13)
121
123
 
122
124
  Minor:
123
125
 
@@ -140,8 +142,6 @@ Other:
140
142
 
141
143
  * README: add obligatory screenshot! >:-)
142
144
 
143
- ------------------------------------------------------------------------------
144
- Version 0.0.1 (2011-10-12)
145
- ------------------------------------------------------------------------------
145
+ ## Version 0.0.1 (2011-10-12)
146
146
 
147
147
  First release! Happy birthday! Woohoo! :-)
@@ -1,45 +1,39 @@
1
- binman - UNIX man pages for Ruby bin/ scripts
2
- ==============================================================================
1
+ # binman - man pages for bin scripts
3
2
 
4
- [binman] produces UNIX man pages for your Ruby `bin/` scripts using
5
- markdown(7), roff(7), [md2man] for conversion thereof, and man(1).
3
+ [binman] produces UNIX manual pages for executable scripts using [md2man].
6
4
 
7
- ![Obligatory Screen-shot of binman(1) in action!](http://ompldr.org/vYm5mcg)
5
+ ## Features
8
6
 
9
- Here is [an example bin/ script][binman-bin] to help you get started!
7
+ * Supports any scripting language that has multi-line
8
+ comments or uses `#` for single-line comments: Ruby,
9
+ Perl, Python, Node.js, Tcl, AWK, UNIX shell, and more!
10
10
 
11
- [binman]: https://github.com/sunaku/binman
12
- [binman-api]: http://rdoc.info/github/sunaku/binman
13
- [binman-bin]: https://raw.github.com/sunaku/binman/master/bin/binman
14
- [md2man]: https://github.com/sunaku/md2man
15
-
16
- ------------------------------------------------------------------------------
17
- Features
18
- ------------------------------------------------------------------------------
11
+ * Provides a Ruby library and a command-line client too.
19
12
 
20
- * Includes both a Ruby library and a command-line client.
13
+ * Individual extraction, conversion, and display commands.
21
14
 
22
- * Individual extraction, conversion, and display commands.
15
+ * Implemented in roughly 100 lines of pure Ruby code! :-)
23
16
 
24
- * Implemented in roughly 100 lines of pure Ruby code! :-)
17
+ ### Demonstration
25
18
 
26
- ------------------------------------------------------------------------------
27
- Prerequisites
28
- ------------------------------------------------------------------------------
19
+ ![Obligatory screen-shot of binman(1) in action!](http://ompldr.org/vYm5mcg)
29
20
 
30
- * Ruby 1.9.2 or newer. It might work with 1.8.7 but I haven't tried. :-P
21
+ Here is [a complete example in Ruby][binman-bin] to help you get started.
22
+ For examples in other scripting languages, see the "Usage" section below!
31
23
 
32
- ------------------------------------------------------------------------------
33
- Installation
34
- ------------------------------------------------------------------------------
24
+ ## Installation
35
25
 
36
- As a Ruby gem (without markdown to roff converter):
26
+ If you only want to view pre-built manual pages:
37
27
 
38
28
  gem install binman
39
29
 
40
- As a Ruby gem (with extra cheese and everything please):
30
+ If you also want to build your own manual pages:
41
31
 
42
- gem install binman --development
32
+ gem install md2man -v '~> 1'
33
+
34
+ ### Prerequisites
35
+
36
+ * Ruby 1.8.7 or 1.9.2 or newer.
43
37
 
44
38
  ### Development
45
39
 
@@ -49,51 +43,199 @@ As a Ruby gem (with extra cheese and everything please):
49
43
  bundle_bin/binman --help # run it directly
50
44
  bundle exec rake -T # packaging tasks
51
45
 
52
- ------------------------------------------------------------------------------
53
- Usage
54
- ------------------------------------------------------------------------------
46
+ ## Usage
55
47
 
56
48
  ### At the command line
57
49
 
58
50
  binman --help
59
51
 
60
- ### In your bin/ scripts
52
+ ### Inside a Ruby script
61
53
 
62
- Add the following lines to your bin/ script and you've got `--help` options!
54
+ #!/usr/bin/env ruby
55
+ # your program's manual page goes here
63
56
 
64
57
  require 'binman'
65
- BinMan.help # show man page and exit if ARGV has -h or --help
66
58
 
67
- Or, if you're on a diet:
59
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
60
+ BinMan.help
68
61
 
69
- require 'binman'
70
- BinMan.show # just show the man page; no fancy extras, please!
62
+ # OPTION 2: show manual unconditionally
63
+ BinMan.show
64
+
65
+ You can also specify your program's source file encoding above the manual:
66
+
67
+ #!/usr/bin/env ruby
68
+ # -*- coding: utf-8 -*-
69
+ # your program's manual page goes here
70
+
71
+ You can also write the manual as a multi-line Ruby comment:
72
+
73
+ #!/usr/bin/env ruby
74
+ =begin
75
+ your program's manual page goes here
76
+ =end
77
+
78
+ You can also specify your program's source file encoding above the manual:
79
+
80
+ #!/usr/bin/env ruby
81
+ # -*- coding: utf-8 -*-
82
+ =begin
83
+ your program's manual page goes here
84
+ =end
85
+
86
+ See the [API documentation][binman-api] for even more possibilities!
87
+
88
+ ### Inside a shell script
89
+
90
+ #!/usr/bin/sh
91
+ # your program's manual page goes here
92
+
93
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
94
+ binman help "$0" "$@" && exit
95
+
96
+ # OPTION 2: show manual unconditionally
97
+ binman show "$0"
98
+
99
+ ### Inside a Perl script
100
+
101
+ #!/usr/bin/env perl
102
+ # your program's manual page goes here
103
+
104
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
105
+ system('binman', 'help', __FILE__, @ARGV) == 0 and exit;
106
+
107
+ # OPTION 2: show manual unconditionally
108
+ system('binman', 'show', __FILE__);
109
+
110
+ You can also write the manual as a multi-line Ruby comment after `__END__`:
111
+
112
+ #!/usr/bin/env perl
113
+ print "your program's code goes here";
114
+ __END__
115
+ =begin
116
+ your program's manual page goes here
117
+ =end
118
+
119
+ ### Inside a Python script
120
+
121
+ #!/usr/bin/env python
122
+ # your program's manual page goes here
123
+
124
+ import sys, subprocess
125
+
126
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
127
+ subprocess.call(['binman', 'help', __file__] + sys.argv) == 0 and sys.exit()
71
128
 
72
- See the [API documentation][binman-api] for more delicious recipes.
129
+ # OPTION 2: show manual unconditionally
130
+ subprocess.call(['binman', 'show', __file__])
131
+
132
+ You can also specify your program's source file encoding above the manual:
133
+
134
+ #!/usr/bin/env python
135
+ # -*- coding: utf-8 -*-
136
+ # your program's manual page goes here
137
+
138
+ You can also write the manual as a multi-line Ruby comment inside a docstring:
139
+
140
+ #!/usr/bin/env python
141
+ """
142
+ =begin
143
+ your program's manual page goes here
144
+ =end
145
+ """
146
+
147
+ You can also specify your program's source file encoding above the manual:
148
+
149
+ #!/usr/bin/env python
150
+ # -*- coding: utf-8 -*-
151
+ """
152
+ =begin
153
+ your program's manual page goes here
154
+ =end
155
+ """
156
+
157
+ ### Inside an AWK script
158
+
159
+ The technique for determining current AWK script file name [comes from here](
160
+ http://www.mombu.com/programming/programming/t-the-name-of-script-itself-2040784-print.html
161
+ ).
162
+
163
+ #!/usr/bin/awk -f
164
+ # your program's manual page goes here
165
+
166
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
167
+ BEGIN {getline c <"/proc/self/cmdline"; sub(".*-f\0"," ",c); gsub("\0"," ",c);
168
+ if(system("binman help" c) == 0){ exit }}
169
+
170
+ # OPTION 2: show manual unconditionally
171
+ BEGIN {getline c <"/proc/self/cmdline"; sub(".*-f\0"," ",c); sub("\0.*","",c);
172
+ system("binman show" c)}
173
+
174
+ ### Inside a Tcl script
175
+
176
+ #!/usr/bin/env tclsh
177
+ # your program's manual page goes here
178
+
179
+ # OPTION 1: show manual and exit if ARGV has -h or --help except after --
180
+ if {![catch {exec -- >/dev/tty binman help $argv0 {*}$argv}]} {exit}
181
+
182
+ # OPTION 2: show manual unconditionally
183
+ exec >/dev/tty binman show $argv0
184
+
185
+ You can also write the manual as a multi-line Ruby comment inside an `if 0`:
186
+
187
+ #!/usr/bin/env tclsh
188
+ if 0 {
189
+ =begin
190
+ your program's manual page goes here
191
+ =end
192
+ }
193
+
194
+ ### Inside a Node.js script
195
+
196
+ /*
197
+ =begin
198
+ your program's manual page goes here
199
+ =end
200
+ */
201
+
202
+ var exec = require('child_process').exec;
203
+
204
+ // OPTION 1: show manual and exit if ARGV has -h or --help except after --
205
+ exec(['>/dev/tty', 'binman', 'help', __filename].concat(process.argv).
206
+ join(' '), function(error){ if (error === null){ process.exit(); } });
207
+
208
+ // OPTION 2: show manual unconditionally
209
+ exec(['>/dev/tty', 'binman', 'show', __filename].join(' '));
210
+
211
+ ## Packaging
73
212
 
74
213
  ### Pre-building man pages
75
214
 
76
215
  Add the following lines to your gemspec:
77
216
 
78
- s.files += Dir["man/**/*"]
217
+ s.files += Dir['man/**/*']
79
218
  s.add_development_dependency 'md2man', '~> 1'
80
219
 
81
220
  Add the following line to your Rakefile:
82
221
 
83
222
  require 'binman/rakefile'
84
223
 
85
- You now have a `rake binman` task that pre-builds UNIX man page files for your
86
- `bin/` scripts into a `man/` directory so that your end-users do not need
87
- [md2man] installed in order to view the man pages you've embedded therein!
224
+ You now have a `rake binman` task that pre-builds UNIX manual page files for
225
+ your `bin/` scripts into a `man/` directory so that your end-users do not need
226
+ [md2man] installed in order to view the manual pages you've embedded therein!
88
227
 
89
228
  If you're using Bundler, this task also hooks into its gem packaging tasks and
90
- ensures that your UNIX man page files are pre-built and included in your gem:
229
+ ensures that your UNIX manual pages are pre-built and packaged into your gem:
91
230
 
92
231
  bundle exec rake build
93
232
  gem spec pkg/*.gem | fgrep man/man
94
233
 
95
- ------------------------------------------------------------------------------
96
- License
97
- ------------------------------------------------------------------------------
234
+ ## License
98
235
 
99
236
  Released under the ISC license. See the LICENSE file for details.
237
+
238
+ [binman]: https://github.com/sunaku/binman
239
+ [binman-api]: http://rubydoc.info/gems/binman/frames
240
+ [binman-bin]: https://raw.github.com/sunaku/binman/master/bin/binman
241
+ [md2man]: https://github.com/sunaku/md2man
data/bin/binman CHANGED
@@ -1,44 +1,43 @@
1
1
  #!/usr/bin/env ruby
2
- # encoding: utf-8
3
- =begin
2
+ =begin =======================================================================
4
3
 
5
- BINMAN 1 "2012-02-02" "3.0.1"
6
- =============================
4
+ # BINMAN 1 2012-02-06 3.1.0
7
5
 
8
- NAME
9
- ----
6
+ ## NAME
10
7
 
11
- binman - UNIX man pages for Ruby `bin/` scripts
8
+ binman - man pages for bin scripts
12
9
 
13
- SYNOPSIS
14
- --------
10
+ ## SYNOPSIS
15
11
 
16
12
  `binman` [*OPTION*]... *COMMAND*
17
13
 
18
- DESCRIPTION
19
- -----------
14
+ ## DESCRIPTION
20
15
 
21
- [binman] produces UNIX man pages for your Ruby `bin/` scripts. It can extract
22
- their leading comment headers (defined below), convert them from markdown(7)
23
- into roff(7) using [md2man], and display them using man(1).
16
+ [binman] produces UNIX manual pages for your executable scripts. It can
17
+ extract their leading comment headers (defined below), convert them from
18
+ markdown(7) into roff(7) using [md2man], and display them using man(1).
24
19
 
25
- ### Leading Comment Headers
20
+ ### Leading comment headers
26
21
 
27
22
  A leading comment header can be one of the following two things:
28
23
 
29
- 1. A contiguous sequence of single-line comments starting at the
30
- beginning of the file (after shebang and encoding comments plus
31
- optional blank lines) and ending at the first single blank line.
24
+ 1. A contiguous sequence of single-line comments (which begin with `#`
25
+ and optionally continue with a single space followed by any number of
26
+ characters until the end of the line) starting at the beginning of the
27
+ file (after shebang and encoding comments plus optional blank lines) and
28
+ ending at the first single blank line.
32
29
 
33
- 2. First embedded document delimited by `=begin` and `=end` lines.
30
+ 2. The first embedded document delimited by `=begin` and `=end` lines, which
31
+ begin with the respective delimiters and optionally continue with a single
32
+ space followed by any number of characters until the end of the line.
34
33
 
35
- ### Markdown Processing Divergence
34
+ ### Markdown processing divergence
36
35
 
37
36
  Although your leading comment headers are written in markdown(7), `binman
38
- conv` introduces the following additions to markdown(7) syntax via [md2man]:
37
+ conv` inherits the following additions to markdown(7) syntax from [md2man]:
39
38
 
40
39
  * There can be at most one top-level heading (H1). It is emitted as `.TH`
41
- in the roff(7) output, specifying the UNIX man page's header and footer.
40
+ in the roff(7) output to define the UNIX manual page's header and footer.
42
41
 
43
42
  * Paragraphs whose lines are all uniformly indented by two spaces are
44
43
  considered to be "indented paragraphs". They are unindented accordingly
@@ -48,25 +47,29 @@ conv` introduces the following additions to markdown(7) syntax via [md2man]:
48
47
  indented by two spaces are considered to be a "tagged paragraphs". They
49
48
  are unindented accordingly before emission as `.TP` in the roff(7) output.
50
49
 
51
- ### Markdown Processing Extensions
50
+ ### Markdown processing extensions
52
51
 
53
- The following [Redcarpet2] extensions for markdown(7) are enabled:
52
+ The following [Redcarpet] extensions are enabled while processing markdown(7):
54
53
 
55
- * tables
56
- * autolink
57
- * superscript
58
- * strikethrough
59
- * no_intra_emphasis
60
- * fenced_code_blocks
54
+ * tables
55
+ * autolink
56
+ * superscript
57
+ * strikethrough
58
+ * no_intra_emphasis
59
+ * fenced_code_blocks
61
60
 
62
- OPTIONS
63
- -------
61
+ ## OPTIONS
64
62
 
65
63
  `-h`, `--help`
66
- Display this help manual using man(1).
64
+ Show this help manual.
67
65
 
68
- COMMANDS
69
- --------
66
+ ## COMMANDS
67
+
68
+ `help` *FILE* [*ARGUMENT*]...
69
+ If the given *ARGUMENT* sequence contains `-h` or `--help` except after
70
+ `--`, then this program extracts the given *FILE*'s leading comment header,
71
+ converts it into roff(7), and displays it using man(1) before exiting with
72
+ status code `0`. Otherwise, this program exits with status code `111`.
70
73
 
71
74
  `show` [*FILE*]
72
75
  Use man(1) to display the roff(7) conversion of the leading comment header
@@ -83,29 +86,33 @@ COMMANDS
83
86
  Print the roff(7) conversion of the markdown(7) document read from the given
84
87
  *FILE* or STDIN.
85
88
 
86
- SEE ALSO
87
- --------
89
+ ## SEE ALSO
88
90
 
89
91
  man(1), roff(7), markdown(7)
90
92
 
91
93
  [binman]: https://github.com/sunaku/binman
92
94
  [md2man]: https://github.com/sunaku/md2man
93
- [Redcarpet2]: https://github.com/tanoku/redcarpet
95
+ [Redcarpet]: https://github.com/tanoku/redcarpet
94
96
 
95
97
  =end =========================================================================
96
98
 
97
99
  require 'binman'
98
- BinMan.help
99
100
 
100
101
  command, source = ARGV
101
- source ||= STDIN
102
102
 
103
- case command
104
- when 'show'
105
- BinMan.show source
106
- when 'load', 'dump', 'conv'
107
- puts BinMan.send(command, source)
103
+ if command == 'help'
104
+ BinMan.help source, ARGV[2..-1]
105
+ exit 111
108
106
  else
109
- warn 'binman: bad command; try --help'
110
- exit!
107
+ BinMan.help
108
+ source ||= STDIN
109
+ case command
110
+ when 'show'
111
+ BinMan.send(command, source)
112
+ when 'load', 'dump', 'conv'
113
+ puts BinMan.send(command, source)
114
+ else
115
+ warn 'binman: invalid command; try --help'
116
+ exit 1
117
+ end
111
118
  end
@@ -1,21 +1,21 @@
1
1
  # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path("../lib", __FILE__)
3
- require "binman/version"
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require 'binman/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
- s.name = "binman"
6
+ s.name = 'binman'
7
7
  s.version = BinMan::VERSION
8
8
  s.authors,
9
9
  s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
10
- s.homepage = "http://github.com/sunaku/binman"
11
- s.summary = "UNIX man pages for Ruby bin/ scripts"
12
- s.description = nil
10
+ s.homepage = 'http://github.com/sunaku/binman'
11
+ s.summary = 'man pages for bin scripts'
12
+ s.description = 'Produces UNIX manual pages for executable scripts.'
13
13
 
14
- s.files = `git ls-files`.split("\n") + Dir["man/**/*"]
14
+ s.files = `git ls-files`.split("\n") + Dir['man/**/*']
15
15
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
- s.require_paths = ["lib"]
17
+ s.require_paths = ['lib']
18
18
 
19
- s.add_development_dependency "md2man", "~> 1"
20
- s.add_development_dependency "rake", ">= 0.9.2.2", "< 1"
19
+ s.add_development_dependency 'md2man', '~> 1'
20
+ s.add_development_dependency 'rake', '>= 0.9.2.2', '< 1'
21
21
  end
@@ -34,7 +34,7 @@ module BinMan
34
34
  require 'md2man'
35
35
  Md2Man::ENGINE.render(read(source))
36
36
  rescue LoadError
37
- raise 'Run `gem install binman --development` to use BinMan::conv().'
37
+ raise 'Run `gem install md2man -v "~>1"` to use BinMan::conv().'
38
38
  end
39
39
 
40
40
  # Extracts leading comment header content from given
@@ -4,7 +4,7 @@ directory path = 'man/man1'
4
4
  bins = FileList['bin/*']
5
5
  mans = bins.pathmap("#{path}/%n.1")
6
6
 
7
- desc 'Build UNIX man pages for bin/ scripts.'
7
+ desc 'Build UNIX manual pages for bin/ scripts.'
8
8
  task :binman => mans
9
9
 
10
10
  bins.zip(mans).each do |bin, man|
@@ -1,3 +1,3 @@
1
1
  module BinMan
2
- VERSION = "3.0.1"
2
+ VERSION = "3.1.0"
3
3
  end
@@ -1,7 +1,7 @@
1
- .TH BINMAN 1 "2012\-02\-02" "3.0.1"
1
+ .TH BINMAN 1 2012\-02\-06 3.1.0
2
2
  .SH NAME
3
3
  .PP
4
- binman \- UNIX man pages for Ruby \fB\fCbin/\fR scripts
4
+ binman \- man pages for bin scripts
5
5
  .SH SYNOPSIS
6
6
  .PP
7
7
  \fB\fCbinman\fR [\fIOPTION\fP]... \fICOMMAND\fP
@@ -10,35 +10,39 @@ binman \- UNIX man pages for Ruby \fB\fCbin/\fR scripts
10
10
  binman
11
11
  .UR https://github.com/sunaku/binman
12
12
  .UE
13
- produces UNIX man pages for your Ruby \fB\fCbin/\fR scripts. It can extract
14
- their leading comment headers (defined below), convert them from
15
- .BR markdown (7)
13
+ produces UNIX manual pages for your executable scripts. It can
14
+ extract their leading comment headers (defined below), convert them from
15
+ .BR markdown (7)
16
16
  into
17
17
  .BR roff (7)
18
18
  using md2man
19
19
  .UR https://github.com/sunaku/md2man
20
20
  .UE , and display them using
21
21
  .BR man (1).
22
- .SS Leading Comment Headers
22
+ .SS Leading comment headers
23
23
  .PP
24
24
  A leading comment header can be one of the following two things:
25
25
  .nr step0 0 1
26
26
  .RS
27
27
  .IP \n+[step0]
28
- A contiguous sequence of single\-line comments starting at the
29
- beginning of the file (after shebang and encoding comments plus
30
- optional blank lines) and ending at the first single blank line.
28
+ A contiguous sequence of single\-line comments (which begin with \fB\fC#\fR
29
+ and optionally continue with a single space followed by any number of
30
+ characters until the end of the line) starting at the beginning of the
31
+ file (after shebang and encoding comments plus optional blank lines) and
32
+ ending at the first single blank line.
31
33
  .IP \n+[step0]
32
- First embedded document delimited by \fB\fC=begin\fR and \fB\fC=end\fR lines.
34
+ The first embedded document delimited by \fB\fC=begin\fR and \fB\fC=end\fR lines, which
35
+ begin with the respective delimiters and optionally continue with a single
36
+ space followed by any number of characters until the end of the line.
33
37
  .RE
34
- .SS Markdown Processing Divergence
38
+ .SS Markdown processing divergence
35
39
  .PP
36
40
  Although your leading comment headers are written in
37
41
  .BR markdown (7),
38
42
  \fB\fCbinman
39
- conv\fR introduces the following additions to
43
+ conv\fR inherits the following additions to
40
44
  .BR markdown (7)
41
- syntax via md2man
45
+ syntax from md2man
42
46
  .UR https://github.com/sunaku/md2man
43
47
  .UE :
44
48
  .RS
@@ -46,7 +50,7 @@ syntax via md2man
46
50
  There can be at most one top\-level heading (H1). It is emitted as \fB\fC.TH\fR
47
51
  in the
48
52
  .BR roff (7)
49
- output, specifying the UNIX man page's header and footer.
53
+ output to define the UNIX manual page's header and footer.
50
54
  .IP \(bu 2
51
55
  Paragraphs whose lines are all uniformly indented by two spaces are
52
56
  considered to be "indented paragraphs". They are unindented accordingly
@@ -60,14 +64,13 @@ are unindented accordingly before emission as \fB\fC.TP\fR in the
60
64
  .BR roff (7)
61
65
  output.
62
66
  .RE
63
- .SS Markdown Processing Extensions
67
+ .SS Markdown processing extensions
64
68
  .PP
65
- The following Redcarpet2
69
+ The following Redcarpet
66
70
  .UR https://github.com/tanoku/redcarpet
67
71
  .UE
68
- extensions for
69
- .BR markdown (7)
70
- are enabled:
72
+ extensions are enabled while processing
73
+ .BR markdown (7):
71
74
  .RS
72
75
  .IP \(bu 2
73
76
  tables
@@ -85,10 +88,19 @@ fenced_code_blocks
85
88
  .SH OPTIONS
86
89
  .TP
87
90
  \fB\fC-h\fR, \fB\fC--help\fR
88
- Display this help manual using
89
- .BR man (1).
91
+ Show this help manual.
90
92
  .SH COMMANDS
91
93
  .TP
94
+ \fB\fChelp\fR \fIFILE\fP [\fIARGUMENT\fP]...
95
+ If the given \fIARGUMENT\fP sequence contains \fB\fC-h\fR or \fB\fC--help\fR except after
96
+ \fB\fC--\fR, then this program extracts the given \fIFILE\fP's leading comment header,
97
+ converts it into
98
+ .BR roff (7),
99
+ and displays it using
100
+ .BR man (1)
101
+ before exiting with
102
+ status code \fB\fC0\fR. Otherwise, this program exits with status code \fB\fC111\fR.
103
+ .TP
92
104
  \fB\fCshow\fR [\fIFILE\fP]
93
105
  Use
94
106
  .BR man (1)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binman
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-03 00:00:00.000000000 Z
12
+ date: 2012-02-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: md2man
16
- requirement: &18830780 !ruby/object:Gem::Requirement
16
+ requirement: &16648520 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '1'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *18830780
24
+ version_requirements: *16648520
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &18829640 !ruby/object:Gem::Requirement
27
+ requirement: &16906320 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -35,8 +35,8 @@ dependencies:
35
35
  version: '1'
36
36
  type: :development
37
37
  prerelease: false
38
- version_requirements: *18829640
39
- description: ''
38
+ version_requirements: *16906320
39
+ description: Produces UNIX manual pages for executable scripts.
40
40
  email:
41
41
  - sunaku@gmail.com
42
42
  executables:
@@ -70,7 +70,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
70
70
  version: '0'
71
71
  segments:
72
72
  - 0
73
- hash: 3512884628236364112
73
+ hash: 1200769804944669574
74
74
  required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
@@ -79,11 +79,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  version: '0'
80
80
  segments:
81
81
  - 0
82
- hash: 3512884628236364112
82
+ hash: 1200769804944669574
83
83
  requirements: []
84
84
  rubyforge_project:
85
85
  rubygems_version: 1.8.11
86
86
  signing_key:
87
87
  specification_version: 3
88
- summary: UNIX man pages for Ruby bin/ scripts
88
+ summary: man pages for bin scripts
89
89
  test_files: []