binman 5.0.1 → 5.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>