binman 5.0.1 → 5.1.0

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.
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+ =begin =======================================================================
3
+
4
+ # BINMAN-ROFF 1 2016-02-28 5.1.0
5
+
6
+ ## NAME
7
+
8
+ binman-roff - UNIX manpage from header comment
9
+
10
+ ## SYNOPSIS
11
+
12
+ `binman-roff` [*OPTION*]... [*FILE*]
13
+
14
+
15
+ ## DESCRIPTION
16
+
17
+ Extracts the "embedded manpage source", described in binman-text(1), from the
18
+ given *FILE* or STDIN and transforms it into roff(7) for display by man(1).
19
+
20
+ ## SEE ALSO
21
+
22
+ binman-text(1), binman-html(1), binman(1), roff(7), man(1)
23
+
24
+ =end =========================================================================
25
+
26
+ require 'binman'
27
+ BinMan.help
28
+ puts BinMan.roff(ARGF)
@@ -0,0 +1,193 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # # BINMAN-SHOW 1 2016-02-28 5.1.0
4
+ #
5
+ # ## NAME
6
+ #
7
+ # binman-show - show manpage from header comment
8
+ #
9
+ # ## SYNOPSIS
10
+ #
11
+ # `binman-show` [*OPTION*]... [*FILE*] [*PATTERN*]
12
+ #
13
+ # ## DESCRIPTION
14
+ #
15
+ # Extracts the "embedded manpage source", described in binman-text(1), from the
16
+ # given *FILE* or STDIN, transforms it into roff(7), and displays it in man(1).
17
+ #
18
+ # If the optional *PATTERN* regular expression is specified, searches for it
19
+ # inside the output displayed by man(1) and jumps to the first match if found.
20
+ #
21
+ # If man(1) cannot display the roff(7) conversion, falls back to the displaying
22
+ # the HTML conversion. And if that fails too, displays the manpage source as-is.
23
+ #
24
+ # ### Examples
25
+ #
26
+ # See "Embedded manpage sources" in binman-text(1) for header comment syntax.
27
+ #
28
+ # #### From a shell script
29
+ #
30
+ # ```sh
31
+ # #!/usr/bin/sh
32
+ # # your program's manual page goes here
33
+ #
34
+ # binman-show "$0"
35
+ # ```
36
+ #
37
+ # #### From a Ruby script
38
+ #
39
+ # ```ruby
40
+ # #!/usr/bin/env ruby
41
+ # # your program's manual page goes here
42
+ #
43
+ # require 'binman'
44
+ # BinMan.show
45
+ # ```
46
+ #
47
+ # You can also specify your program's source file encoding above the manual:
48
+ #
49
+ # ```ruby
50
+ # #!/usr/bin/env ruby
51
+ # # -*- coding: utf-8 -*-
52
+ # # your program's manual page goes here
53
+ # ```
54
+ #
55
+ # You can also write the manual as a multi-line Ruby comment:
56
+ #
57
+ # ```ruby
58
+ # #!/usr/bin/env ruby
59
+ # =begin
60
+ # your program's manual page goes here
61
+ # =end
62
+ # ```
63
+ #
64
+ # You can also specify your program's source file encoding above the manual:
65
+ #
66
+ # ```ruby
67
+ # #!/usr/bin/env ruby
68
+ # # -*- coding: utf-8 -*-
69
+ # =begin
70
+ # your program's manual page goes here
71
+ # =end
72
+ # ```
73
+ #
74
+ # #### From a Perl script
75
+ #
76
+ # ```perl
77
+ # #!/usr/bin/env perl
78
+ # # your program's manual page goes here
79
+ #
80
+ # system('binman-show', __FILE__);
81
+ # ```
82
+ #
83
+ # You can also write the manual as a multi-line Ruby comment after `__END__`:
84
+ #
85
+ # ```perl
86
+ # #!/usr/bin/env perl
87
+ # print "your program's code goes here";
88
+ # __END__
89
+ # =begin
90
+ # your program's manual page goes here
91
+ # =end
92
+ # ```
93
+ #
94
+ # #### From a Python script
95
+ #
96
+ # ```python
97
+ # #!/usr/bin/env python
98
+ # # your program's manual page goes here
99
+ #
100
+ # import subprocess
101
+ #
102
+ # subprocess.call(['binman-show', __file__])
103
+ # ```
104
+ #
105
+ # You can also specify your program's source file encoding above the manual:
106
+ #
107
+ # ```python
108
+ # #!/usr/bin/env python
109
+ # # -*- coding: utf-8 -*-
110
+ # # your program's manual page goes here
111
+ # ```
112
+ #
113
+ # You can also write the manual as a multi-line Ruby comment inside a docstring:
114
+ #
115
+ # ```python
116
+ # #!/usr/bin/env python
117
+ # """
118
+ # =begin
119
+ # your program's manual page goes here
120
+ # =end
121
+ # """
122
+ # ```
123
+ #
124
+ # You can also specify your program's source file encoding above the manual:
125
+ #
126
+ # ```python
127
+ # #!/usr/bin/env python
128
+ # # -*- coding: utf-8 -*-
129
+ # """
130
+ # =begin
131
+ # your program's manual page goes here
132
+ # =end
133
+ # """
134
+ # ```
135
+ #
136
+ # #### From an AWK script
137
+ #
138
+ # The technique for determining current AWK script file name [comes from here](
139
+ # http://www.mombu.com/programming/programming/t-the-name-of-script-itself-2040784-print.html
140
+ # ).
141
+ #
142
+ # ```awk
143
+ # #!/usr/bin/awk -f
144
+ # # your program's manual page goes here
145
+ #
146
+ # BEGIN {getline c <"/proc/self/cmdline"; sub(".*-f\0"," ",c); sub("\0.*","",c);
147
+ # system("binman-show" c)}
148
+ # ```
149
+ #
150
+ # #### From a Tcl script
151
+ #
152
+ # ```tcl
153
+ # #!/usr/bin/env tclsh
154
+ # # your program's manual page goes here
155
+ #
156
+ # exec >/dev/tty binman-show $argv0
157
+ # ```
158
+ #
159
+ # You can also write the manual as a multi-line Ruby comment inside an `if 0`:
160
+ #
161
+ # ```tcl
162
+ # #!/usr/bin/env tclsh
163
+ # if 0 {
164
+ # =begin
165
+ # your program's manual page goes here
166
+ # =end
167
+ # }
168
+ # ```
169
+ #
170
+ # #### From a Node.js script
171
+ #
172
+ # ```javascript
173
+ # /*
174
+ # =begin
175
+ # your program's manual page goes here
176
+ # =end
177
+ # */
178
+ #
179
+ # require('child_process').exec(['>/dev/tty', 'binman-show', __filename].join(' '));
180
+ # ```
181
+ #
182
+ # ## OPTIONS
183
+ #
184
+ # `-h` [*PATTERN*], `--help` [*PATTERN*]
185
+ # Show this help manual and optionally search for *PATTERN* regular expression.
186
+ #
187
+ # ## SEE ALSO
188
+ #
189
+ # binman-text(1), binman-roff(1), binman-html(1), binman-help(1), binman(1)
190
+
191
+ require 'binman'
192
+ BinMan.help
193
+ BinMan.show(ARGF)
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+ =begin =======================================================================
3
+
4
+ # BINMAN-TEXT 1 2016-02-28 5.1.0
5
+
6
+ ## NAME
7
+
8
+ binman-text - extract embedded manpage sources
9
+
10
+ ## SYNOPSIS
11
+
12
+ `binman-text` [*OPTION*]... [*FILE*]
13
+
14
+ ## DESCRIPTION
15
+
16
+ Prints the "embedded manpage source" extracted from the given *FILE* or STDIN.
17
+
18
+ ### Embedded manpage sources
19
+
20
+ An "embedded manpage source" is an md2man(5) document that is embedded in your
21
+ script, typically inside a multi-line block comment or "here document"; or in
22
+ a header comment composed of single-line comments near the top of your script.
23
+
24
+ #### In multi-line comments
25
+
26
+ In the former case, where it's possible to write a freeform block of text, the
27
+ embedded manpage source must be delimited by `=begin` and `=end` lines, which
28
+ start with their respective delimiters and, optionally, continue with a single
29
+ space followed by any amount and kind of characters until the end of line.
30
+
31
+ To illustrate, here is the simplest case:
32
+
33
+ =begin
34
+ This is an embedded manpage source!
35
+ =end
36
+
37
+ Next, we can add decorations after the delimiters:
38
+
39
+ =begin \\\\\\\\\\\\\\\\\\\\\\\\\\\\
40
+ This is an embedded manpage source!
41
+ =end //////////////////////////////
42
+
43
+ Similarly, using different characters this time:
44
+
45
+ =begin abcdefghijklmnopqrstuvwxyz'"
46
+ This is an embedded manpage source!
47
+ =end 0123456789!@#$%^&*()=+-_:;,\/?
48
+
49
+ #### In single-line comments
50
+
51
+ In the latter case, the embedded manpage source is expected to be found in a
52
+ contiguous block of single-line comments that begins at the top of the script
53
+ (optionally after a `#!` line, `coding:` line, and any number of blank lines)
54
+ and ends at the first blank line. Each single-line comment inside this block
55
+ must begin with a `#` character and may, optionally, continue with a single
56
+ space followed by any amount and kind of characters until the end of line.
57
+
58
+ To illustrate, here is the simplest case:
59
+
60
+ # This is an embedded manpage source!
61
+
62
+ Next, we can add a `#!` line at the top:
63
+
64
+ #!/bin/sh
65
+ # This is an embedded manpage source!
66
+
67
+ Next, we can add a `coding:` line after `#!`:
68
+
69
+ #!/bin/sh
70
+ # coding: utf-8
71
+ # This is an embedded manpage source!
72
+
73
+ Or, using the Emacs coding system syntax:
74
+
75
+ #!/bin/sh
76
+ # -*- encoding: utf-8 -*-
77
+ # This is an embedded manpage source!
78
+
79
+ Next, we can add blank lines between them:
80
+
81
+ #!/bin/sh
82
+ # coding: utf-8
83
+
84
+ # This is an embedded manpage source!
85
+
86
+ Here is another permutation of the above:
87
+
88
+ #!/bin/sh
89
+
90
+ # This is an embedded manpage source!
91
+
92
+ ## OPTIONS
93
+
94
+ `-h` [*PATTERN*], `--help` [*PATTERN*]
95
+ Show this help manual and optionally search for *PATTERN* regular expression.
96
+
97
+ ## SEE ALSO
98
+
99
+ md2man(5), binman-roff(1), binman-html(1), binman(1)
100
+
101
+ =end =========================================================================
102
+
103
+ require 'binman'
104
+ BinMan.help
105
+ puts BinMan.text(ARGF)
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.authors,
9
9
  s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
10
10
  s.homepage = 'http://github.com/sunaku/binman'
11
- s.summary = 'man pages for bin scripts'
11
+ s.summary = 'manpages from comment headers'
12
12
  s.description = 'Produces UNIX manual pages for executable scripts.'
13
13
 
14
14
  s.files = `git ls-files`.split("\n") + Dir['man/man?/*.?']
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ['lib']
18
18
 
19
- s.files += Dir['man/man?/*.?'] # UNIX man pages
20
- s.files += Dir['man/**/*.{html,css,js}'] # HTML man pages
21
- s.add_development_dependency 'md2man', '~> 5.0'
19
+ s.files += Dir['man/man?/*.?'] # UNIX manual pages
20
+ s.files += Dir['man/**/*.{html,css,js}'] # HTML manual pages
21
+ s.add_development_dependency 'md2man', '~> 5.1'
22
22
 
23
23
  s.add_dependency 'opener', '>= 0.1.0', '< 1'
24
24
  s.add_development_dependency 'rake', '~> 10.1'
@@ -5,7 +5,7 @@ require 'binman/version'
5
5
  module BinMan
6
6
  extend self
7
7
 
8
- # Extracts content of leading comment header (which can be one of the
8
+ # Extracts content of embedded manpage source (which can be one of the
9
9
  # following two choices) from given source (IO, file name, or string).
10
10
  #
11
11
  # (1) A contiguous sequence of single-line comments starting at the
@@ -23,7 +23,7 @@ module BinMan
23
23
  header.sub! /\A#!.+\n?/, ''
24
24
  header.sub! /\A#.*coding:.+\n?/, ''
25
25
 
26
- # extract the leading comment header
26
+ # extract the embedded manpage source
27
27
  if header =~ /\A\s*^#/
28
28
  header.split(/^\s*$/, 2).first.gsub(/^# ?/, '')
29
29
  else
@@ -31,19 +31,19 @@ module BinMan
31
31
  end.strip
32
32
  end
33
33
 
34
- # Renders leading comment header from given source as UNIX man page.
34
+ # Renders embedded manpage source from given source as UNIX man page.
35
35
  def roff source=nil
36
36
  to_roff text(source)
37
37
  end
38
38
 
39
- # Renders leading comment header from given source as HTML man page.
39
+ # Renders embedded manpage source from given source as HTML man page.
40
40
  def html source=nil
41
41
  to_html text(source)
42
42
  end
43
43
 
44
- # Shows leading comment header from given source as UNIX man page and
44
+ # Shows embedded manpage source from given source as UNIX man page and
45
45
  # optionally jumps to first match of query regular expression if given.
46
- # If not possible, falls back to showing leading comment header as-is.
46
+ # If not possible, falls back to showing embedded manpage source as-is.
47
47
  # Tries to display a pre-rendered UNIX man page under ./man/ if possible.
48
48
  def show source=nil, query=nil
49
49
  # try showing existing man page files for given source
@@ -53,13 +53,13 @@ module BinMan
53
53
  return if show_man(man_path, man_page, query)
54
54
  end
55
55
 
56
- # fall back to rendering leading comment header or showing it as-is
56
+ # fall back to rendering embedded manpage source or showing it as-is
57
57
  header = text(source)
58
58
  return if show_str(header, query)
59
59
  puts header
60
60
  end
61
61
 
62
- # Shows leading comment header from given source as UNIX man page and exits
62
+ # Shows embedded manpage source from given source as UNIX man page and exits
63
63
  # if the given argument vector contains '-h' or '--help', except after '--',
64
64
  # optionally followed by a regular expression argument that specifies text
65
65
  # to search for and, if found, jump to inside the displayed UNIX man page.
@@ -29,12 +29,12 @@ task 'binman:mkd' => mkds
29
29
  desc 'Build UNIX manual pages for bin/ scripts.'
30
30
  task 'binman:man' => 'binman:mkd' do
31
31
  #-----------------------------------------------------------------------------
32
- sh 'md2man-rake', 'md2man:man'
32
+ sh 'md2man-rake', 'man'
33
33
  end
34
34
 
35
35
  #-----------------------------------------------------------------------------
36
36
  desc 'Build HTML manual pages for bin/ scripts.'
37
37
  task 'binman:web' => 'binman:mkd' do
38
38
  #-----------------------------------------------------------------------------
39
- sh 'md2man-rake', 'md2man:web'
39
+ sh 'md2man-rake', 'web'
40
40
  end
@@ -1,3 +1,3 @@
1
1
  module BinMan
2
- VERSION = "5.0.1"
2
+ VERSION = "5.1.0"
3
3
  end
@@ -2,10 +2,10 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <meta name="generator" content="md2man 5.0.1 https://github.com/sunaku/md2man" />
6
- <title>man/index</title>
5
+ <meta name="generator" content="md2man 5.1.0 https://github.com/sunaku/md2man" />
6
+ <title>man/index &mdash; binman</title>
7
7
  <link rel="stylesheet" href="style.css"/>
8
8
  <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
9
  </head>
10
- <body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/binman-rake.1.html">binman-rake(1)</a></dt><dd>run rake(1) tasks from binman(1)</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman.1.html">binman(1)</a></dt><dd>man pages for bin scripts</dd></dl></div></body>
10
+ <body><div class="container-fluid"><h2 id="man0">man0</h2><dl class="dl-horizontal"><dt><a href="man0/README.html">README</a></dt><dd></dd></dl><dl class="dl-horizontal"><dt><a href="man0/VERSION.html">VERSION</a></dt><dd></dd></dl><h2 id="man1">man1</h2><dl class="dl-horizontal"><dt><a href="man1/binman.1.html">binman(1)</a></dt><dd>deprecated; use binman-* instead</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-help.1.html">binman-help(1)</a></dt><dd>add help options to your program</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-html.1.html">binman-html(1)</a></dt><dd>HTML manpage from header comment</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-rake.1.html">binman-rake(1)</a></dt><dd>run rake(1) tasks from command line</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-roff.1.html">binman-roff(1)</a></dt><dd>UNIX manpage from header comment</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-show.1.html">binman-show(1)</a></dt><dd>show manpage from header comment</dd></dl><dl class="dl-horizontal"><dt><a href="man1/binman-text.1.html">binman-text(1)</a></dt><dd>extract embedded manpage sources</dd></dl><h2 id="man5">man5</h2><dl class="dl-horizontal"><dt><a href="man5/md2man.5.html">md2man(5)</a></dt><dd>UNIX manual page flavoring for Markdown</dd></dl></div></body>
11
11
  </html>
@@ -2,312 +2,547 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
- <meta name="generator" content="md2man 5.0.1 https://github.com/sunaku/md2man" />
6
- <title>README</title>
5
+ <meta name="generator" content="md2man 5.1.0 https://github.com/sunaku/md2man" />
6
+ <title>README &mdash; binman</title>
7
7
  <link rel="stylesheet" href="../style.css"/>
8
8
  <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
9
9
  </head>
10
- <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man0">man0</a>/README</span></div></div><div class="container-fluid"><h1 id="binman-man-pages-for"><span class="md2man-title">binman</span> <span class="md2man-section">-</span> <span class="md2man-date">man</span> <span class="md2man-source">pages</span> <span class="md2man-manual">for</span><a name="binman-man-pages-for" href="#binman-man-pages-for" class="md2man-permalink" title="permalink"></a></h1><p><a href="https://github.com/sunaku/binman">binman</a> produces UNIX manual pages for executable scripts using <a href="https://github.com/sunaku/md2man">md2man</a>.
11
- Simply <a href="https://sunaku.github.io/md2man/man/man5/md2man.5.html">document your script in Markdown</a> as a comment at the
12
- top of your script and call <code>binman show</code> to display it as a UNIX manual page!
13
- Or, call <code>binman help</code> to display your manual <em>only</em> when your script receives
14
- with <code>-h</code> or <code>--help</code> command-line options. Or, call <code>binman text</code> to extract
15
- the manual from your script for your own custom processing, outside of binman.
16
- And that&#39;s not all: <a href="https://sunaku.github.io/binman/man/man1/binman.1.html">see the manual page</a> for more possibilities!</p>
17
- <ul>
18
- <li>Manuals: <a href="https://sunaku.github.io/binman/man">https://sunaku.github.io/binman/man</a></li>
19
- <li>Sources: <a href="https://github.com/sunaku/binman">https://github.com/sunaku/binman</a></li>
20
- <li>Support: <a href="https://github.com/sunaku/binman/issues">https://github.com/sunaku/binman/issues</a></li>
21
- <li>Package: <a href="https://rubygems.org/gems/binman">https://rubygems.org/gems/binman</a></li>
22
- </ul>
23
- <h2 id="features">Features<a name="features" href="#features" class="md2man-permalink" title="permalink"></a></h2>
24
- <ul>
25
- <li><p>Supports any scripting language that has multi-line
26
- comments or uses <code>#</code> for single-line comments: Ruby,
27
- Perl, Python, Node.js, Tcl, AWK, UNIX shell, and more!</p></li>
28
- <li><p>Provides a Ruby library and a command-line client too.</p></li>
29
- <li><p>Individual extraction, conversion, and display commands.</p></li>
30
- <li><p>Implemented in roughly 165 lines of pure Ruby code! :-)</p></li>
31
- </ul>
32
- <h3 id="demonstration">Demonstration<a name="demonstration" href="#demonstration" class="md2man-permalink" title="permalink"></a></h3><p><img src="EXAMPLE.png" alt="Obligatory screen-shot of binman(1) in action!"></p><h4 id="what-can-binman-1-do">What can <a class="md2man-reference" href="../man1/binman.1.html">binman(1)</a> do?<a name="what-can-binman-1-do" href="#what-can-binman-1-do" class="md2man-permalink" title="permalink"></a></h4><p>Here are some real examples of processed bin scripts to help you get started:</p>
33
- <ul>
34
- <li><code>binman text</code>
35
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
36
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork.1.markdown">tork.1.markdown</a></li>
37
- <li><code>binman roff</code>
38
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
39
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork.1">tork.1</a></li>
40
- <li><code>binman html</code>
41
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
42
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork.1.html">tork.1.html</a></li>
43
- <li><code>binman text</code>
44
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
45
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-runner.1.markdown">tork-runner.1.markdown</a></li>
46
- <li><code>binman roff</code>
47
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
48
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-runner.1">tork-runner.1</a></li>
49
- <li><code>binman html</code>
50
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
51
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-runner.1.html">tork-runner.1.html</a></li>
52
- <li><code>binman text</code>
53
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
54
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-herald.1.markdown">tork-herald.1.markdown</a></li>
55
- <li><code>binman roff</code>
56
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
57
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-herald.1">tork-herald.1</a></li>
58
- <li><code>binman html</code>
59
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
60
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-herald.1.html">tork-herald.1.html</a></li>
61
- <li><code>binman text</code>
62
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
63
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-driver.1.markdown">tork-driver.1.markdown</a></li>
64
- <li><code>binman roff</code>
65
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
66
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-driver.1">tork-driver.1</a></li>
67
- <li><code>binman html</code>
68
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
69
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-driver.1.html">tork-driver.1.html</a></li>
70
- <li><code>binman text</code>
71
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
72
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-engine.1.markdown">tork-engine.1.markdown</a></li>
73
- <li><code>binman roff</code>
74
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
75
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-engine.1">tork-engine.1</a></li>
76
- <li><code>binman html</code>
77
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
78
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-engine.1.html">tork-engine.1.html</a></li>
79
- <li><code>binman text</code>
80
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
81
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-master.1.markdown">tork-master.1.markdown</a></li>
82
- <li><code>binman roff</code>
83
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
84
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-master.1">tork-master.1</a></li>
85
- <li><code>binman html</code>
86
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
87
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-master.1.html">tork-master.1.html</a></li>
88
- <li><code>binman text</code>
89
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
90
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-remote.1.markdown">tork-remote.1.markdown</a></li>
91
- <li><code>binman roff</code>
92
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
93
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-remote.1">tork-remote.1</a></li>
94
- <li><code>binman html</code>
95
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
96
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-remote.1.html">tork-remote.1.html</a></li>
97
- <li><code>binman text</code>
98
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
99
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-notify.1.markdown">tork-notify.1.markdown</a></li>
100
- <li><code>binman roff</code>
101
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
102
- &gt; <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-notify.1">tork-notify.1</a></li>
103
- <li><code>binman html</code>
104
- &lt; <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
105
- &gt; <a href="https://sunaku.github.io/tork/man/man1/tork-notify.1.html">tork-notify.1.html</a></li>
106
- <li><code>binman text</code>
107
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
108
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-roff.1.markdown">md2man-roff.1.markdown</a></li>
109
- <li><code>binman roff</code>
110
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
111
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-roff.1">md2man-roff.1</a></li>
112
- <li><code>binman html</code>
113
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
114
- &gt; <a href="https://sunaku.github.io/md2man/man/man1/md2man-roff.1.html">md2man-roff.1.html</a></li>
115
- <li><code>binman text</code>
116
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
117
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-html.1.markdown">md2man-html.1.markdown</a></li>
118
- <li><code>binman roff</code>
119
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
120
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-html.1">md2man-html.1</a></li>
121
- <li><code>binman html</code>
122
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
123
- &gt; <a href="https://sunaku.github.io/md2man/man/man1/md2man-html.1.html">md2man-html.1.html</a></li>
124
- <li><code>binman text</code>
125
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
126
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-rake.1.markdown">md2man-rake.1.markdown</a></li>
127
- <li><code>binman roff</code>
128
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
129
- &gt; <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-rake.1">md2man-rake.1</a></li>
130
- <li><code>binman html</code>
131
- &lt; <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
132
- &gt; <a href="https://sunaku.github.io/md2man/man/man1/md2man-rake.1.html">md2man-rake.1.html</a></li>
133
- <li><code>binman text</code>
134
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
135
- &gt; <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman.1.markdown">binman.1.markdown</a></li>
136
- <li><code>binman roff</code>
137
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
138
- &gt; <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman.1">binman.1</a></li>
139
- <li><code>binman html</code>
140
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
141
- &gt; <a href="https://sunaku.github.io/binman/man/man1/binman.1.html">binman.1.html</a></li>
142
- <li><code>binman text</code>
143
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
144
- &gt; <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-rake.1.markdown">binman-rake.1.markdown</a></li>
145
- <li><code>binman roff</code>
146
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
147
- &gt; <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-rake.1">binman-rake.1</a></li>
148
- <li><code>binman html</code>
149
- &lt; <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
150
- &gt; <a href="https://sunaku.github.io/binman/man/man1/binman-rake.1.html">binman-rake.1.html</a></li>
151
- </ul>
152
- <p>For examples in even more scripting languages, see the &quot;Usage&quot; section below!</p><h4 id="what-can-binman-rake-1-do">What can <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a> do?<a name="what-can-binman-rake-1-do" href="#what-can-binman-rake-1-do" class="md2man-permalink" title="permalink"></a></h4><p>Here are some examples of HTML manual <em>sets</em> produced by <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a>:</p>
10
+ <body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man0">man0</a>/README</span></div></div><div class="container-fluid"><ul>
11
+ <li>Code: <a href="https://github.com/sunaku/binman">https://github.com/sunaku/binman</a></li>
12
+ <li>Docs: <a href="https://sunaku.github.io/binman/man">https://sunaku.github.io/binman/man</a></li>
13
+ <li>Bugs: <a href="https://github.com/sunaku/binman/issues">https://github.com/sunaku/binman/issues</a></li>
14
+ </ul>
15
+ <h1 id="binman-manpages-from-header-comments"><span class="md2man-title">binman</span> <span class="md2man-section">-</span> <span class="md2man-date">manpages</span> <span class="md2man-source">from</span> <span class="md2man-manual">header</span> comments<a name="binman-manpages-from-header-comments" href="#binman-manpages-from-header-comments" class="md2man-permalink" title="permalink"></a></h1><p>binman generates manual pages from header comments in your scripts so that you
16
+ can keep your documentation and implementation together, in the same file, for
17
+ easy maintenance. But keeping them apart, in separate files, is supported too.</p><p><img src="https://github.com/sunaku/binman/raw/gh-pages/EXAMPLE.png" alt="screenshot"></p><h2 id="features">Features<a name="features" href="#features" class="md2man-permalink" title="permalink"></a></h2>
18
+ <ul>
19
+ <li><p>Direct support for any scripting language that has multi-line comments or
20
+ uses <code>#</code> for single-line comments such as Ruby, Perl, PHP, Python, R, Tcl,
21
+ Node.js, Elixir, make, AWK, sed, UNIX shells, Windows PowerShell and more!</p></li>
22
+ <li><p>Individual commands for manual page extraction, conversion, and display.</p></li>
23
+ <li><p>Accessible from the command line and also as a library in <a href="https://www.ruby-lang.org/">Ruby</a> scripts.</p></li>
24
+ <li><p>Implemented in roughly 165 statement lines (SLOC) of pure <a href="https://www.ruby-lang.org/">Ruby</a> code! :-)</p></li>
25
+ </ul>
26
+ <h2 id="examples">Examples<a name="examples" href="#examples" class="md2man-permalink" title="permalink"></a></h2><p>Here are some examples of HTML manual page <em>sets</em> generated by <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a>:</p>
153
27
  <ul>
28
+ <li><a href="https://sunaku.github.io/dasht/man">https://sunaku.github.io/dasht/man</a></li>
154
29
  <li><a href="https://sunaku.github.io/tork/man">https://sunaku.github.io/tork/man</a></li>
155
30
  <li><a href="https://sunaku.github.io/binman/man">https://sunaku.github.io/binman/man</a></li>
156
31
  <li><a href="https://sunaku.github.io/md2man/man">https://sunaku.github.io/md2man/man</a></li>
157
32
  </ul>
158
- <h2 id="installation">Installation<a name="installation" href="#installation" class="md2man-permalink" title="permalink"></a></h2><p>If you only want to view pre-built manual pages:</p><pre><code>gem install binman
33
+ <p>For examples of input and output files, see &quot;From the command line&quot; below.</p><h2 id="installation">Installation<a name="installation" href="#installation" class="md2man-permalink" title="permalink"></a></h2><h3 id="requirements">Requirements<a name="requirements" href="#requirements" class="md2man-permalink" title="permalink"></a></h3>
34
+ <ul>
35
+ <li><a href="https://www.ruby-lang.org/">Ruby</a> 1.8.7 or newer</li>
36
+ </ul>
37
+ <h3 id="for-users">For users<a name="for-users" href="#for-users" class="md2man-permalink" title="permalink"></a></h3><p>If you only want to view pre-built manual pages:</p><pre class="highlight shell"><code>gem install binman
38
+ </code></pre>
39
+ <p>If you also want to build your own manual pages:</p><pre class="highlight shell"><code>gem install md2man -v <span class="s1">'~&gt; 5.1'</span>
159
40
  </code></pre>
160
- <p>If you also want to build your own manual pages:</p><pre><code>gem install md2man -v &#39;~&gt; 5.0&#39;
41
+ <h3 id="for-developers">For developers<a name="for-developers" href="#for-developers" class="md2man-permalink" title="permalink"></a></h3><pre class="highlight shell"><code>git clone https://github.com/sunaku/binman
42
+ <span class="nb">cd </span>binman
43
+ bundle install
44
+ bundle <span class="nb">exec </span>rake --tasks <span class="c"># packaging tasks</span>
45
+ bundle <span class="nb">exec </span>binman-text --help <span class="c"># run it directly</span>
46
+ bundle <span class="nb">exec </span>binman-roff --help <span class="c"># run it directly</span>
47
+ bundle <span class="nb">exec </span>binman-html --help <span class="c"># run it directly</span>
48
+ bundle <span class="nb">exec </span>binman-show --help <span class="c"># run it directly</span>
49
+ bundle <span class="nb">exec </span>binman-help --help <span class="c"># run it directly</span>
50
+ bundle <span class="nb">exec </span>binman-rake --help <span class="c"># run it directly</span>
161
51
  </code></pre>
162
- <h3 id="prerequisites">Prerequisites<a name="prerequisites" href="#prerequisites" class="md2man-permalink" title="permalink"></a></h3>
52
+ <h2 id="usage">Usage<a name="usage" href="#usage" class="md2man-permalink" title="permalink"></a></h2><p>First, write <a class="md2man-reference" href="../man5/md2man.5.html">md2man(5)</a> text for your script: either in a comment at the top of
53
+ your script file, described as &quot;Embedded manpage sources&quot; in <a class="md2man-reference" href="../man1/binman-text.1.html">binman-text(1)</a>,
54
+ or in a separate Markdown file located at <code>man/man?/*.?.{markdown,mkd,md}</code>.</p>
163
55
  <ul>
164
- <li>Ruby 1.8.7 or 1.9.2 or newer.</li>
56
+ <li>For real examples of what to write, see &quot;From the command line&quot; below.</li>
57
+ <li>For the detailed syntax and semantics of what to write, see <a class="md2man-reference" href="../man5/md2man.5.html">md2man(5)</a>.</li>
165
58
  </ul>
166
- <h3 id="development">Development<a name="development" href="#development" class="md2man-permalink" title="permalink"></a></h3><pre><code>git clone https://github.com/sunaku/binman
167
- cd binman
168
- bundle install
169
- bundle exec binman --help # run it directly
170
- bundle exec rake --tasks # packaging tasks
59
+ <p>Next, you have two ways of generating manual pages from what you&#39;ve written:</p>
60
+ <ol>
61
+ <li>Generate manual pages at &quot;compile time&quot; and ship them with your scripts.</li>
62
+ <li>Generate manual pages at &quot;run time&quot; so that your scripts are standalone.</li>
63
+ </ol>
64
+ <h3 id="at-compile-time">At compile time<a name="at-compile-time" href="#at-compile-time" class="md2man-permalink" title="permalink"></a></h3><p>Run <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a> to generate manual pages for all of your <code>./bin/*</code> scripts.</p><p>Alternatively, to have more control over the generation of your manual pages:</p>
65
+ <ul>
66
+ <li>Run <a class="md2man-reference" href="../man1/binman-text.1.html">binman-text(1)</a> to extract manual page text from a specified script.</li>
67
+ <li>Run <a class="md2man-reference" href="../man1/binman-roff.1.html">binman-roff(1)</a> to generate a UNIX manual page from a specified script.</li>
68
+ <li>Run <a class="md2man-reference" href="../man1/binman-html.1.html">binman-html(1)</a> to generate a HTML manual page from a specified script.</li>
69
+ </ul>
70
+ <h4 id="from-the-command-line">From the command line<a name="from-the-command-line" href="#from-the-command-line" class="md2man-permalink" title="permalink"></a></h4><p>Below are some real examples of generating manual pages from the command line.
71
+ Note that <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a> abstracts away all of the complexity you see below!</p><p><a class="md2man-reference">dasht(1)</a>:</p>
72
+ <ul>
73
+ <li><code>binman-text</code>
74
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht">dasht</a>
75
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht.1.markdown">dasht.1.markdown</a></li>
76
+ <li><code>binman-roff</code>
77
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht">dasht</a>
78
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht.1">dasht.1</a></li>
79
+ <li><code>binman-html</code>
80
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht">dasht</a>
81
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht.1.html">dasht.1.html</a></li>
82
+ </ul>
83
+ <p><a class="md2man-reference">dasht-docsets(1)</a>:</p>
84
+ <ul>
85
+ <li><code>binman-text</code>
86
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets">dasht-docsets</a>
87
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets.1.markdown">dasht-docsets.1.markdown</a></li>
88
+ <li><code>binman-roff</code>
89
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets">dasht-docsets</a>
90
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets.1">dasht-docsets.1</a></li>
91
+ <li><code>binman-html</code>
92
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets">dasht-docsets</a>
93
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-docsets.1.html">dasht-docsets.1.html</a></li>
94
+ </ul>
95
+ <p><a class="md2man-reference">dasht-docsets-install(1)</a>:</p>
96
+ <ul>
97
+ <li><code>binman-text</code>
98
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-install">dasht-docsets-install</a>
99
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-install.1.markdown">dasht-docsets-install.1.markdown</a></li>
100
+ <li><code>binman-roff</code>
101
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-install">dasht-docsets-install</a>
102
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-install.1">dasht-docsets-install.1</a></li>
103
+ <li><code>binman-html</code>
104
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-install">dasht-docsets-install</a>
105
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-docsets-install.1.html">dasht-docsets-install.1.html</a></li>
106
+ </ul>
107
+ <p><a class="md2man-reference">dasht-docsets-remove(1)</a>:</p>
108
+ <ul>
109
+ <li><code>binman-text</code>
110
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-remove">dasht-docsets-remove</a>
111
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-remove.1.markdown">dasht-docsets-remove.1.markdown</a></li>
112
+ <li><code>binman-roff</code>
113
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-remove">dasht-docsets-remove</a>
114
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-remove.1">dasht-docsets-remove.1</a></li>
115
+ <li><code>binman-html</code>
116
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-remove">dasht-docsets-remove</a>
117
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-docsets-remove.1.html">dasht-docsets-remove.1.html</a></li>
118
+ </ul>
119
+ <p><a class="md2man-reference">dasht-docsets-update(1)</a>:</p>
120
+ <ul>
121
+ <li><code>binman-text</code>
122
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-update">dasht-docsets-update</a>
123
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-update.1.markdown">dasht-docsets-update.1.markdown</a></li>
124
+ <li><code>binman-roff</code>
125
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-update">dasht-docsets-update</a>
126
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-docsets-update.1">dasht-docsets-update.1</a></li>
127
+ <li><code>binman-html</code>
128
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-docsets-update">dasht-docsets-update</a>
129
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-docsets-update.1.html">dasht-docsets-update.1.html</a></li>
130
+ </ul>
131
+ <p><a class="md2man-reference">dasht-query-exec(1)</a>:</p>
132
+ <ul>
133
+ <li><code>binman-text</code>
134
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-exec">dasht-query-exec</a>
135
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-exec.1.markdown">dasht-query-exec.1.markdown</a></li>
136
+ <li><code>binman-roff</code>
137
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-exec">dasht-query-exec</a>
138
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-exec.1">dasht-query-exec.1</a></li>
139
+ <li><code>binman-html</code>
140
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-exec">dasht-query-exec</a>
141
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-query-exec.1.html">dasht-query-exec.1.html</a></li>
142
+ </ul>
143
+ <p><a class="md2man-reference">dasht-query-html(1)</a>:</p>
144
+ <ul>
145
+ <li><code>binman-text</code>
146
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-html">dasht-query-html</a>
147
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-html.1.markdown">dasht-query-html.1.markdown</a></li>
148
+ <li><code>binman-roff</code>
149
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-html">dasht-query-html</a>
150
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-html.1">dasht-query-html.1</a></li>
151
+ <li><code>binman-html</code>
152
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-html">dasht-query-html</a>
153
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-query-html.1.html">dasht-query-html.1.html</a></li>
154
+ </ul>
155
+ <p><a class="md2man-reference">dasht-query-line(1)</a>:</p>
156
+ <ul>
157
+ <li><code>binman-text</code>
158
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-line">dasht-query-line</a>
159
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-line.1.markdown">dasht-query-line.1.markdown</a></li>
160
+ <li><code>binman-roff</code>
161
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-line">dasht-query-line</a>
162
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-query-line.1">dasht-query-line.1</a></li>
163
+ <li><code>binman-html</code>
164
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-query-line">dasht-query-line</a>
165
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-query-line.1.html">dasht-query-line.1.html</a></li>
166
+ </ul>
167
+ <p><a class="md2man-reference">dasht-server(1)</a>:</p>
168
+ <ul>
169
+ <li><code>binman-text</code>
170
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server">dasht-server</a>
171
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-server.1.markdown">dasht-server.1.markdown</a></li>
172
+ <li><code>binman-roff</code>
173
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server">dasht-server</a>
174
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-server.1">dasht-server.1</a></li>
175
+ <li><code>binman-html</code>
176
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server">dasht-server</a>
177
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-server.1.html">dasht-server.1.html</a></li>
178
+ </ul>
179
+ <p><a class="md2man-reference">dasht-server-http(1)</a>:</p>
180
+ <ul>
181
+ <li><code>binman-text</code>
182
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server-http">dasht-server-http</a>
183
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-server-http.1.markdown">dasht-server-http.1.markdown</a></li>
184
+ <li><code>binman-roff</code>
185
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server-http">dasht-server-http</a>
186
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/dasht/gh-pages/man/man1/dasht-server-http.1">dasht-server-http.1</a></li>
187
+ <li><code>binman-html</code>
188
+ <a href="https://raw.github.com/sunaku/dasht/master/bin/dasht-server-http">dasht-server-http</a>
189
+ <code>&gt;</code> <a href="https://sunaku.github.io/dasht/man/man1/dasht-server-http.1.html">dasht-server-http.1.html</a></li>
190
+ </ul>
191
+ <p><a class="md2man-reference">tork(1)</a>:</p>
192
+ <ul>
193
+ <li><code>binman-text</code>
194
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
195
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork.1.markdown">tork.1.markdown</a></li>
196
+ <li><code>binman-roff</code>
197
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
198
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork.1">tork.1</a></li>
199
+ <li><code>binman-html</code>
200
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork">tork</a>
201
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork.1.html">tork.1.html</a></li>
202
+ </ul>
203
+ <p><a class="md2man-reference">tork-runner(1)</a>:</p>
204
+ <ul>
205
+ <li><code>binman-text</code>
206
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
207
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-runner.1.markdown">tork-runner.1.markdown</a></li>
208
+ <li><code>binman-roff</code>
209
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
210
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-runner.1">tork-runner.1</a></li>
211
+ <li><code>binman-html</code>
212
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-runner">tork-runner</a>
213
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-runner.1.html">tork-runner.1.html</a></li>
214
+ </ul>
215
+ <p><a class="md2man-reference">tork-herald(1)</a>:</p>
216
+ <ul>
217
+ <li><code>binman-text</code>
218
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
219
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-herald.1.markdown">tork-herald.1.markdown</a></li>
220
+ <li><code>binman-roff</code>
221
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
222
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-herald.1">tork-herald.1</a></li>
223
+ <li><code>binman-html</code>
224
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-herald">tork-herald</a>
225
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-herald.1.html">tork-herald.1.html</a></li>
226
+ </ul>
227
+ <p><a class="md2man-reference">tork-driver(1)</a>:</p>
228
+ <ul>
229
+ <li><code>binman-text</code>
230
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
231
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-driver.1.markdown">tork-driver.1.markdown</a></li>
232
+ <li><code>binman-roff</code>
233
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
234
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-driver.1">tork-driver.1</a></li>
235
+ <li><code>binman-html</code>
236
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-driver">tork-driver</a>
237
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-driver.1.html">tork-driver.1.html</a></li>
238
+ </ul>
239
+ <p><a class="md2man-reference">tork-engine(1)</a>:</p>
240
+ <ul>
241
+ <li><code>binman-text</code>
242
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
243
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-engine.1.markdown">tork-engine.1.markdown</a></li>
244
+ <li><code>binman-roff</code>
245
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
246
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-engine.1">tork-engine.1</a></li>
247
+ <li><code>binman-html</code>
248
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-engine">tork-engine</a>
249
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-engine.1.html">tork-engine.1.html</a></li>
250
+ </ul>
251
+ <p><a class="md2man-reference">tork-master(1)</a>:</p>
252
+ <ul>
253
+ <li><code>binman-text</code>
254
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
255
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-master.1.markdown">tork-master.1.markdown</a></li>
256
+ <li><code>binman-roff</code>
257
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
258
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-master.1">tork-master.1</a></li>
259
+ <li><code>binman-html</code>
260
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-master">tork-master</a>
261
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-master.1.html">tork-master.1.html</a></li>
262
+ </ul>
263
+ <p><a class="md2man-reference">tork-remote(1)</a>:</p>
264
+ <ul>
265
+ <li><code>binman-text</code>
266
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
267
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-remote.1.markdown">tork-remote.1.markdown</a></li>
268
+ <li><code>binman-roff</code>
269
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
270
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-remote.1">tork-remote.1</a></li>
271
+ <li><code>binman-html</code>
272
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-remote">tork-remote</a>
273
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-remote.1.html">tork-remote.1.html</a></li>
274
+ </ul>
275
+ <p><a class="md2man-reference">tork-notify(1)</a>:</p>
276
+ <ul>
277
+ <li><code>binman-text</code>
278
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
279
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-notify.1.markdown">tork-notify.1.markdown</a></li>
280
+ <li><code>binman-roff</code>
281
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
282
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/tork/gh-pages/man/man1/tork-notify.1">tork-notify.1</a></li>
283
+ <li><code>binman-html</code>
284
+ <a href="https://raw.github.com/sunaku/tork/master/bin/tork-notify">tork-notify</a>
285
+ <code>&gt;</code> <a href="https://sunaku.github.io/tork/man/man1/tork-notify.1.html">tork-notify.1.html</a></li>
286
+ </ul>
287
+ <p><a class="md2man-reference" href="../man1/binman.1.html">binman(1)</a>:</p>
288
+ <ul>
289
+ <li><code>binman-text</code>
290
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
291
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman.1.markdown">binman.1.markdown</a></li>
292
+ <li><code>binman-roff</code>
293
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
294
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman.1">binman.1</a></li>
295
+ <li><code>binman-html</code>
296
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman">binman</a>
297
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman.1.html">binman.1.html</a></li>
298
+ </ul>
299
+ <p><a class="md2man-reference" href="../man1/binman-text.1.html">binman-text(1)</a>:</p>
300
+ <ul>
301
+ <li><code>binman-text</code>
302
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-text">binman-text</a>
303
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-text.1.markdown">binman-text.1.markdown</a></li>
304
+ <li><code>binman-roff</code>
305
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-text">binman-text</a>
306
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-text.1">binman-text.1</a></li>
307
+ <li><code>binman-html</code>
308
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-text">binman-text</a>
309
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-text.1.html">binman-text.1.html</a></li>
310
+ </ul>
311
+ <p><a class="md2man-reference" href="../man1/binman-roff.1.html">binman-roff(1)</a>:</p>
312
+ <ul>
313
+ <li><code>binman-text</code>
314
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-roff">binman-roff</a>
315
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-roff.1.markdown">binman-roff.1.markdown</a></li>
316
+ <li><code>binman-roff</code>
317
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-roff">binman-roff</a>
318
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-roff.1">binman-roff.1</a></li>
319
+ <li><code>binman-html</code>
320
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-roff">binman-roff</a>
321
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-roff.1.html">binman-roff.1.html</a></li>
322
+ </ul>
323
+ <p><a class="md2man-reference" href="../man1/binman-html.1.html">binman-html(1)</a>:</p>
324
+ <ul>
325
+ <li><code>binman-text</code>
326
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-html">binman-html</a>
327
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-html.1.markdown">binman-html.1.markdown</a></li>
328
+ <li><code>binman-roff</code>
329
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-html">binman-html</a>
330
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-html.1">binman-html.1</a></li>
331
+ <li><code>binman-html</code>
332
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-html">binman-html</a>
333
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-html.1.html">binman-html.1.html</a></li>
334
+ </ul>
335
+ <p><a class="md2man-reference" href="../man1/binman-show.1.html">binman-show(1)</a>:</p>
336
+ <ul>
337
+ <li><code>binman-text</code>
338
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-show">binman-show</a>
339
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-show.1.markdown">binman-show.1.markdown</a></li>
340
+ <li><code>binman-roff</code>
341
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-show">binman-show</a>
342
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-show.1">binman-show.1</a></li>
343
+ <li><code>binman-html</code>
344
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-show">binman-show</a>
345
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-show.1.html">binman-show.1.html</a></li>
346
+ </ul>
347
+ <p><a class="md2man-reference" href="../man1/binman-help.1.html">binman-help(1)</a>:</p>
348
+ <ul>
349
+ <li><code>binman-text</code>
350
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-help">binman-help</a>
351
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-help.1.markdown">binman-help.1.markdown</a></li>
352
+ <li><code>binman-roff</code>
353
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-help">binman-help</a>
354
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-help.1">binman-help.1</a></li>
355
+ <li><code>binman-html</code>
356
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-help">binman-help</a>
357
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-help.1.html">binman-help.1.html</a></li>
358
+ </ul>
359
+ <p><a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a>:</p>
360
+ <ul>
361
+ <li><code>binman-text</code>
362
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
363
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-rake.1.markdown">binman-rake.1.markdown</a></li>
364
+ <li><code>binman-roff</code>
365
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
366
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/binman/gh-pages/man/man1/binman-rake.1">binman-rake.1</a></li>
367
+ <li><code>binman-html</code>
368
+ <a href="https://raw.github.com/sunaku/binman/master/bin/binman-rake">binman-rake</a>
369
+ <code>&gt;</code> <a href="https://sunaku.github.io/binman/man/man1/binman-rake.1.html">binman-rake.1.html</a></li>
370
+ </ul>
371
+ <p><a class="md2man-reference">md2man-roff(1)</a>:</p>
372
+ <ul>
373
+ <li><code>binman-text</code>
374
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
375
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-roff.1.markdown">md2man-roff.1.markdown</a></li>
376
+ <li><code>binman-roff</code>
377
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
378
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-roff.1">md2man-roff.1</a></li>
379
+ <li><code>binman-html</code>
380
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-roff">md2man-roff</a>
381
+ <code>&gt;</code> <a href="https://sunaku.github.io/md2man/man/man1/md2man-roff.1.html">md2man-roff.1.html</a></li>
382
+ </ul>
383
+ <p><a class="md2man-reference">md2man-html(1)</a>:</p>
384
+ <ul>
385
+ <li><code>binman-text</code>
386
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
387
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-html.1.markdown">md2man-html.1.markdown</a></li>
388
+ <li><code>binman-roff</code>
389
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
390
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-html.1">md2man-html.1</a></li>
391
+ <li><code>binman-html</code>
392
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-html">md2man-html</a>
393
+ <code>&gt;</code> <a href="https://sunaku.github.io/md2man/man/man1/md2man-html.1.html">md2man-html.1.html</a></li>
394
+ </ul>
395
+ <p><a class="md2man-reference">md2man-rake(1)</a>:</p>
396
+ <ul>
397
+ <li><code>binman-text</code>
398
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
399
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-rake.1.markdown">md2man-rake.1.markdown</a></li>
400
+ <li><code>binman-roff</code>
401
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
402
+ <code>&gt;</code> <a href="https://raw.github.com/sunaku/md2man/gh-pages/man/man1/md2man-rake.1">md2man-rake.1</a></li>
403
+ <li><code>binman-html</code>
404
+ <a href="https://raw.github.com/sunaku/md2man/master/bin/md2man-rake">md2man-rake</a>
405
+ <code>&gt;</code> <a href="https://sunaku.github.io/md2man/man/man1/md2man-rake.1.html">md2man-rake.1.html</a></li>
406
+ </ul>
407
+ <h4 id="for-a-ruby-package">For a Ruby package<a name="for-a-ruby-package" href="#for-a-ruby-package" class="md2man-permalink" title="permalink"></a></h4><p>Add this snippet to your gemspec file:</p><pre class="highlight ruby"><code><span class="n">s</span><span class="p">.</span><span class="nf">files</span> <span class="o">+=</span> <span class="no">Dir</span><span class="p">[</span><span class="s1">'man/man?/*.?'</span><span class="p">]</span> <span class="c1"># UNIX manpages</span>
408
+ <span class="n">s</span><span class="p">.</span><span class="nf">files</span> <span class="o">+=</span> <span class="no">Dir</span><span class="p">[</span><span class="s1">'man/**/*.{html,css}'</span><span class="p">]</span> <span class="c1"># HTML webpages</span>
409
+ <span class="n">s</span><span class="p">.</span><span class="nf">add_development_dependency</span> <span class="s1">'md2man'</span><span class="p">,</span> <span class="s1">'~&gt; 5.1'</span>
171
410
  </code></pre>
172
- <h2 id="usage">Usage<a name="usage" href="#usage" class="md2man-permalink" title="permalink"></a></h2><h3 id="at-the-command-line">At the command line<a name="at-the-command-line" href="#at-the-command-line" class="md2man-permalink" title="permalink"></a></h3><p>See <a class="md2man-reference" href="../man1/binman.1.html">binman(1)</a> manual:</p><pre><code>binman --help
411
+ <p>Add the following line to your Rakefile:</p><pre class="highlight ruby"><code><span class="nb">require</span> <span class="s1">'binman/rakefile'</span>
173
412
  </code></pre>
174
- <h3 id="inside-a-ruby-script">Inside a Ruby script<a name="inside-a-ruby-script" href="#inside-a-ruby-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>#!/usr/bin/env ruby
175
- # your program&#39;s manual page goes here
176
-
177
- require &#39;binman&#39;
413
+ <p>You now have a <code>rake binman</code> task that pre-builds UNIX manual page files for
414
+ your <code>bin/</code> scripts into a <code>man/</code> directory so that your end-users do not need
415
+ <a href="https://github.com/sunaku/md2man">md2man</a> installed in order to view the manual pages you&#39;ve embedded therein!
416
+ There are also sub-tasks to build manual pages individually as <a href="http://troff.org">roff</a> or HTML.</p><p>If you&#39;re using Bundler, this task also hooks into its gem packaging tasks and
417
+ ensures that your UNIX manual pages are pre-built and packaged into your gem:</p><pre class="highlight shell"><code>bundle <span class="nb">exec </span>rake build
418
+ gem spec pkg/<span class="k">*</span>.gem | fgrep man/man
419
+ </code></pre>
420
+ <h3 id="at-run-time">At run time<a name="at-run-time" href="#at-run-time" class="md2man-permalink" title="permalink"></a></h3><p>Run <a class="md2man-reference" href="../man1/binman-show.1.html">binman-show(1)</a> to display the manual page (which may have been
421
+ pre-generated at &quot;compile time&quot;) for a specified script.</p><p>Alternatively, an easy way to add support for <code>-h</code> and <code>--help</code> options in a
422
+ specified script is to run <a class="md2man-reference" href="../man1/binman-help.1.html">binman-help(1)</a> with its file path and command line
423
+ arguments. This displays its manual page (which may have been pre-generated
424
+ at &quot;compile time&quot;) <em>only when</em> those help options are found in its arguments.</p><h4 id="from-a-shell-script">From a shell script<a name="from-a-shell-script" href="#from-a-shell-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight shell"><code><span class="c">#!/usr/bin/sh</span>
425
+ <span class="c"># your program's manual page goes here</span>
178
426
 
179
- # OPTION 1: show manual and exit if ARGV has -h or --help except after --
180
- BinMan.help
427
+ <span class="c"># OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
428
+ binman-help <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span> <span class="s2">"</span><span class="nv">$@</span><span class="s2">"</span> <span class="o">&amp;&amp;</span> <span class="nb">exit</span>
181
429
 
182
- # OPTION 2: show manual unconditionally
183
- BinMan.show
430
+ <span class="c"># OPTION 2: show manual unconditionally</span>
431
+ binman-show <span class="s2">"</span><span class="nv">$0</span><span class="s2">"</span>
184
432
  </code></pre>
185
- <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre><code>#!/usr/bin/env ruby
186
- # -*- coding: utf-8 -*-
187
- # your program&#39;s manual page goes here
433
+ <h4 id="from-a-ruby-script">From a Ruby script<a name="from-a-ruby-script" href="#from-a-ruby-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight ruby"><code><span class="c1">#!/usr/bin/env ruby</span>
434
+ <span class="c1"># your program's manual page goes here</span>
435
+
436
+ <span class="nb">require</span> <span class="s1">'binman'</span>
437
+
438
+ <span class="c1"># OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
439
+ <span class="no">BinMan</span><span class="p">.</span><span class="nf">help</span>
440
+
441
+ <span class="c1"># OPTION 2: show manual unconditionally</span>
442
+ <span class="no">BinMan</span><span class="p">.</span><span class="nf">show</span>
188
443
  </code></pre>
189
- <p>You can also write the manual as a multi-line Ruby comment:</p><pre><code>#!/usr/bin/env ruby
190
- =begin
191
- your program&#39;s manual page goes here
192
- =end
444
+ <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre class="highlight ruby"><code><span class="c1">#!/usr/bin/env ruby</span>
445
+ <span class="c1"># -*- coding: utf-8 -*-</span>
446
+ <span class="c1"># your program's manual page goes here</span>
193
447
  </code></pre>
194
- <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre><code>#!/usr/bin/env ruby
195
- # -*- coding: utf-8 -*-
196
- =begin
197
- your program&#39;s manual page goes here
198
- =end
448
+ <p>You can also write the manual as a multi-line Ruby comment:</p><pre class="highlight ruby"><code><span class="c1">#!/usr/bin/env ruby</span>
449
+ <span class="cm">=begin
450
+ your program's manual page goes here
451
+ =end</span>
199
452
  </code></pre>
200
- <p>See the <a href="http://rubydoc.info/gems/binman/frames">API documentation</a> for even more possibilities!</p><h3 id="inside-a-shell-script">Inside a shell script<a name="inside-a-shell-script" href="#inside-a-shell-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>#!/usr/bin/sh
201
- # your program&#39;s manual page goes here
202
-
203
- # OPTION 1: show manual and exit if ARGV has -h or --help except after --
204
- binman help &quot;$0&quot; &quot;$@&quot; &amp;&amp; exit
205
-
206
- # OPTION 2: show manual unconditionally
207
- binman show &quot;$0&quot;
453
+ <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre class="highlight ruby"><code><span class="c1">#!/usr/bin/env ruby</span>
454
+ <span class="c1"># -*- coding: utf-8 -*-</span>
455
+ <span class="cm">=begin
456
+ your program's manual page goes here
457
+ =end</span>
208
458
  </code></pre>
209
- <h3 id="inside-a-perl-script">Inside a Perl script<a name="inside-a-perl-script" href="#inside-a-perl-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>#!/usr/bin/env perl
210
- # your program&#39;s manual page goes here
459
+ <p>See the <a href="http://rubydoc.info/gems/binman/frames">API documentation</a> for even more possibilities!</p><h4 id="from-a-perl-script">From a Perl script<a name="from-a-perl-script" href="#from-a-perl-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight perl"><code><span class="c1">#!/usr/bin/env perl</span>
460
+ <span class="c1"># your program's manual page goes here</span>
211
461
 
212
- # OPTION 1: show manual and exit if ARGV has -h or --help except after --
213
- system(&#39;binman&#39;, &#39;help&#39;, __FILE__, @ARGV) == 0 and exit;
462
+ <span class="c1"># OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
463
+ <span class="nb">system</span><span class="p">(</span><span class="s">'binman-help'</span><span class="p">,</span> <span class="nv">__FILE__</span><span class="p">,</span> <span class="nv">@ARGV</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="nb">exit</span><span class="p">;</span>
214
464
 
215
- # OPTION 2: show manual unconditionally
216
- system(&#39;binman&#39;, &#39;show&#39;, __FILE__);
465
+ <span class="c1"># OPTION 2: show manual unconditionally</span>
466
+ <span class="nb">system</span><span class="p">(</span><span class="s">'binman-show'</span><span class="p">,</span> <span class="nv">__FILE__</span><span class="p">);</span>
217
467
  </code></pre>
218
- <p>You can also write the manual as a multi-line Ruby comment after <code>__END__</code>:</p><pre><code>#!/usr/bin/env perl
219
- print &quot;your program&#39;s code goes here&quot;;
220
- __END__
468
+ <p>You can also write the manual as a multi-line Ruby comment after <code>__END__</code>:</p><pre class="highlight perl"><code><span class="c1">#!/usr/bin/env perl</span>
469
+ <span class="k">print</span> <span class="s">"your program's code goes here"</span><span class="p">;</span>
470
+ <span class="cp">__END__
221
471
  =begin
222
- your program&#39;s manual page goes here
472
+ your program's manual page goes here
223
473
  =end
224
- </code></pre>
225
- <h3 id="inside-a-python-script">Inside a Python script<a name="inside-a-python-script" href="#inside-a-python-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>#!/usr/bin/env python
226
- # your program&#39;s manual page goes here
474
+ </span></code></pre>
475
+ <h4 id="from-a-python-script">From a Python script<a name="from-a-python-script" href="#from-a-python-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight python"><code><span class="c">#!/usr/bin/env python</span>
476
+ <span class="c"># your program's manual page goes here</span>
227
477
 
228
- import sys, subprocess
478
+ <span class="kn">import</span> <span class="nn">sys</span><span class="o">,</span> <span class="nn">subprocess</span>
229
479
 
230
- # OPTION 1: show manual and exit if ARGV has -h or --help except after --
231
- subprocess.call([&#39;binman&#39;, &#39;help&#39;, __file__] + sys.argv) == 0 and sys.exit()
480
+ <span class="c"># OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
481
+ <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">([</span><span class="s">'binman-help'</span><span class="p">,</span> <span class="n">__file__</span><span class="p">]</span> <span class="o">+</span> <span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">sys</span><span class="o">.</span><span class="nb">exit</span><span class="p">()</span>
232
482
 
233
- # OPTION 2: show manual unconditionally
234
- subprocess.call([&#39;binman&#39;, &#39;show&#39;, __file__])
483
+ <span class="c"># OPTION 2: show manual unconditionally</span>
484
+ <span class="n">subprocess</span><span class="o">.</span><span class="n">call</span><span class="p">([</span><span class="s">'binman-show'</span><span class="p">,</span> <span class="n">__file__</span><span class="p">])</span>
235
485
  </code></pre>
236
- <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre><code>#!/usr/bin/env python
237
- # -*- coding: utf-8 -*-
238
- # your program&#39;s manual page goes here
486
+ <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre class="highlight python"><code><span class="c">#!/usr/bin/env python</span>
487
+ <span class="c"># -*- coding: utf-8 -*-</span>
488
+ <span class="c"># your program's manual page goes here</span>
239
489
  </code></pre>
240
- <p>You can also write the manual as a multi-line Ruby comment inside a docstring:</p><pre><code>#!/usr/bin/env python
241
- &quot;&quot;&quot;
490
+ <p>You can also write the manual as a multi-line Ruby comment inside a docstring:</p><pre class="highlight python"><code><span class="c">#!/usr/bin/env python</span>
491
+ <span class="s">"""
242
492
  =begin
243
- your program&#39;s manual page goes here
493
+ your program's manual page goes here
244
494
  =end
245
- &quot;&quot;&quot;
495
+ """</span>
246
496
  </code></pre>
247
- <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre><code>#!/usr/bin/env python
248
- # -*- coding: utf-8 -*-
249
- &quot;&quot;&quot;
497
+ <p>You can also specify your program&#39;s source file encoding above the manual:</p><pre class="highlight python"><code><span class="c">#!/usr/bin/env python</span>
498
+ <span class="c"># -*- coding: utf-8 -*-</span>
499
+ <span class="s">"""
250
500
  =begin
251
- your program&#39;s manual page goes here
501
+ your program's manual page goes here
252
502
  =end
253
- &quot;&quot;&quot;
503
+ """</span>
254
504
  </code></pre>
255
- <h3 id="inside-an-awk-script">Inside an AWK script<a name="inside-an-awk-script" href="#inside-an-awk-script" class="md2man-permalink" title="permalink"></a></h3><p>The technique for determining current AWK script file name <a href="http://www.mombu.com/programming/programming/t-the-name-of-script-itself-2040784-print.html">comes from here</a>.</p><pre><code>#!/usr/bin/awk -f
256
- # your program&#39;s manual page goes here
505
+ <h4 id="from-an-awk-script">From an AWK script<a name="from-an-awk-script" href="#from-an-awk-script" class="md2man-permalink" title="permalink"></a></h4><p>The technique for determining current AWK script file name <a href="http://www.mombu.com/programming/programming/t-the-name-of-script-itself-2040784-print.html">comes from here</a>.</p><pre class="highlight plaintext"><code>#!/usr/bin/awk -f
506
+ # your program's manual page goes here
257
507
 
258
508
  # OPTION 1: show manual and exit if ARGV has -h or --help except after --
259
- BEGIN {getline c &lt;&quot;/proc/self/cmdline&quot;; sub(&quot;.*-f\0&quot;,&quot; &quot;,c); gsub(&quot;\0&quot;,&quot; &quot;,c);
260
- if(system(&quot;binman help&quot; c) == 0){ exit }}
509
+ BEGIN {getline c &lt;"/proc/self/cmdline"; sub(".*-f\0"," ",c); gsub("\0"," ",c);
510
+ if(system("binman-help" c) == 0){ exit }}
261
511
 
262
512
  # OPTION 2: show manual unconditionally
263
- BEGIN {getline c &lt;&quot;/proc/self/cmdline&quot;; sub(&quot;.*-f\0&quot;,&quot; &quot;,c); sub(&quot;\0.*&quot;,&quot;&quot;,c);
264
- system(&quot;binman show&quot; c)}
513
+ BEGIN {getline c &lt;"/proc/self/cmdline"; sub(".*-f\0"," ",c); sub("\0.*","",c);
514
+ system("binman-show" c)}
265
515
  </code></pre>
266
- <h3 id="inside-a-tcl-script">Inside a Tcl script<a name="inside-a-tcl-script" href="#inside-a-tcl-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>#!/usr/bin/env tclsh
267
- # your program&#39;s manual page goes here
516
+ <h4 id="from-a-tcl-script">From a Tcl script<a name="from-a-tcl-script" href="#from-a-tcl-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight tcl"><code><span class="c1">#!/usr/bin/env tclsh</span>
517
+ <span class="c1"># your program's manual page goes here</span>
268
518
 
269
- # OPTION 1: show manual and exit if ARGV has -h or --help except after --
270
- if {![catch {exec -- &gt;/dev/tty binman help $argv0 {*}$argv}]} {exit}
519
+ <span class="c1"># OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
520
+ <span class="k">if</span> <span class="p">{</span>!<span class="p">[</span><span class="k">catch</span> <span class="p">{</span><span class="nb">exec</span> -- &gt;/dev/tty binman-help <span class="nv">$argv0</span> <span class="k">{*}</span><span class="nv">$argv</span><span class="p">}]}</span> <span class="p">{</span><span class="nb">exit</span><span class="p">}</span>
271
521
 
272
- # OPTION 2: show manual unconditionally
273
- exec &gt;/dev/tty binman show $argv0
522
+ <span class="c1"># OPTION 2: show manual unconditionally</span>
523
+ <span class="nb">exec</span> &gt;/dev/tty binman-show <span class="nv">$argv0</span>
274
524
  </code></pre>
275
- <p>You can also write the manual as a multi-line Ruby comment inside an <code>if 0</code>:</p><pre><code>#!/usr/bin/env tclsh
276
- if 0 {
525
+ <p>You can also write the manual as a multi-line Ruby comment inside an <code>if 0</code>:</p><pre class="highlight tcl"><code><span class="c1">#!/usr/bin/env tclsh</span>
526
+ <span class="k">if</span> 0 <span class="p">{</span>
277
527
  =begin
278
- your program&#39;s manual page goes here
528
+ your program's manual page goes here
279
529
  =end
280
- }
530
+ <span class="p">}</span>
281
531
  </code></pre>
282
- <h3 id="inside-a-node-js-script">Inside a Node.js script<a name="inside-a-node-js-script" href="#inside-a-node-js-script" class="md2man-permalink" title="permalink"></a></h3><pre><code>/*
532
+ <h4 id="from-a-node-js-script">From a Node.js script<a name="from-a-node-js-script" href="#from-a-node-js-script" class="md2man-permalink" title="permalink"></a></h4><pre class="highlight javascript"><code><span class="cm">/*
283
533
  =begin
284
- your program&#39;s manual page goes here
534
+ your program's manual page goes here
285
535
  =end
286
- */
536
+ */</span>
287
537
 
288
- var exec = require(&#39;child_process&#39;).exec;
538
+ <span class="kd">var</span> <span class="nx">exec</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'child_process'</span><span class="p">).</span><span class="nx">exec</span><span class="p">;</span>
289
539
 
290
- // OPTION 1: show manual and exit if ARGV has -h or --help except after --
291
- exec([&#39;&gt;/dev/tty&#39;, &#39;binman&#39;, &#39;help&#39;, __filename].concat(process.argv).
292
- join(&#39; &#39;), function(error){ if (error === null){ process.exit(); } });
540
+ <span class="c1">// OPTION 1: show manual and exit if ARGV has -h or --help except after --</span>
541
+ <span class="nx">exec</span><span class="p">([</span><span class="s1">'&gt;/dev/tty'</span><span class="p">,</span> <span class="s1">'binman-help'</span><span class="p">,</span> <span class="nx">__filename</span><span class="p">].</span><span class="nx">concat</span><span class="p">(</span><span class="nx">process</span><span class="p">.</span><span class="nx">argv</span><span class="p">).</span>
542
+ <span class="nx">join</span><span class="p">(</span><span class="s1">' '</span><span class="p">),</span> <span class="kd">function</span><span class="p">(</span><span class="nx">error</span><span class="p">){</span> <span class="k">if</span> <span class="p">(</span><span class="nx">error</span> <span class="o">===</span> <span class="kc">null</span><span class="p">){</span> <span class="nx">process</span><span class="p">.</span><span class="nx">exit</span><span class="p">();</span> <span class="p">}</span> <span class="p">});</span>
293
543
 
294
- // OPTION 2: show manual unconditionally
295
- exec([&#39;&gt;/dev/tty&#39;, &#39;binman&#39;, &#39;show&#39;, __filename].join(&#39; &#39;));
296
- </code></pre>
297
- <h2 id="packaging">Packaging<a name="packaging" href="#packaging" class="md2man-permalink" title="permalink"></a></h2><h3 id="building-man-pages">Building man pages<a name="building-man-pages" href="#building-man-pages" class="md2man-permalink" title="permalink"></a></h3><h4 id="at-the-command-line-1">At the command line<a name="at-the-command-line-1" href="#at-the-command-line-1" class="md2man-permalink" title="permalink"></a></h4><p>See <a class="md2man-reference" href="../man1/binman-rake.1.html">binman-rake(1)</a> manual:</p><pre><code>binman-rake --help
298
- </code></pre>
299
- <h4 id="inside-a-ruby-script-1">Inside a Ruby script<a name="inside-a-ruby-script-1" href="#inside-a-ruby-script-1" class="md2man-permalink" title="permalink"></a></h4><p>Add this snippet to your gemspec file:</p><pre><code>s.files += Dir[&#39;man/man?/*.?&#39;] # UNIX man pages
300
- s.files += Dir[&#39;man/**/*.{html,css,js}&#39;] # HTML man pages
301
- s.add_development_dependency &#39;md2man&#39;, &#39;~&gt; 5.0&#39;
302
- </code></pre>
303
- <p>Add the following line to your Rakefile:</p><pre><code>require &#39;binman/rakefile&#39;
304
- </code></pre>
305
- <p>You now have a <code>rake binman</code> task that pre-builds UNIX manual page files for
306
- your <code>bin/</code> scripts into a <code>man/</code> directory so that your end-users do not need
307
- <a href="https://github.com/sunaku/md2man">md2man</a> installed in order to view the manual pages you&#39;ve embedded therein!
308
- There are also sub-tasks to build manual pages individually as <a href="http://troff.org">roff</a> or HTML.</p><p>If you&#39;re using Bundler, this task also hooks into its gem packaging tasks and
309
- ensures that your UNIX manual pages are pre-built and packaged into your gem:</p><pre><code>bundle exec rake build
310
- gem spec pkg/*.gem | fgrep man/man
544
+ <span class="c1">// OPTION 2: show manual unconditionally</span>
545
+ <span class="nx">exec</span><span class="p">([</span><span class="s1">'&gt;/dev/tty'</span><span class="p">,</span> <span class="s1">'binman-show'</span><span class="p">,</span> <span class="nx">__filename</span><span class="p">].</span><span class="nx">join</span><span class="p">(</span><span class="s1">' '</span><span class="p">));</span>
311
546
  </code></pre>
312
547
  <h2 id="license">License<a name="license" href="#license" class="md2man-permalink" title="permalink"></a></h2><p>Released under the ISC license. See the LICENSE file for details.</p></div></body>
313
548
  </html>