This release splits binman(1) into pieces and improves the documentation.
binman(1) is now deprecated, to be removed in the next major version. Please run the new binman-* programs, listed below, directly instead.
Split binman(1) commands into independent programs:
binman-rake(1): allow task names without namespace.
You can now run
binman-rake man instead of
binman-rake web instead of
binman-rake mkd instead of
README: an epic revision; add copy of md2man(5).
README: add dasht manual pages to examples section.
Clarify optionalness of PATTERN in
Upgrade to md2man version 5.1.
binman snip command to
binman conv command to
binman roff and make it operate on a bin
script containing an embedded manual page rather than the extracted latter.
binman html command which extracts embedded manual page from a given
bin script, converts it into HTML, and then prints the result to STDOUT.
binman show now falls back to displaying a temporary HTML manual page if
man(1) fails to display the temporary UNIX manual page. This is useful in
Windows where there is no man(1) reader, but a web browser can be started.
When a HTML manual page is shown,
binman now blocks until the launched
web browser exits. Previously, it used to exit immediately (nonblocking).
binman:mkdrake task to extract
Shell out to md2man-rake(1) for dynamic man pages.
Requiring the md2man/rakefile.rb script builds Rake tasks only once, so it ignores any man page files generated dynamically after the require().
This fix shells out to md2man-rake(1) causing that script to be required every time afresh, so that such dynamically generated files are handled.
binman help is called without ARGV.
help': undefined methodindex' for nil:NilClass (NoMethodError)
binman show is called without ARGV.
binman.rb:47:in `basename': no implicit conversion of IO into String (TypeError)
binman show is given input on STDIN.
binman.rb:51:in `basename': no implicit conversion of IO into String (TypeError)
Revert "ensure 'binman:web' task works the first time thru".
This reverts commit dd0511e78e02546cac4903b5c6de6243607a8bba, which was causing the following error under Ruby 2.3.0p0.
load' ./lib/binman/rakefile.rb:29:inblock in
Show HTML manual only as fallback to TTY man page.
This prevents annoying browser launches every time you run
BinMan::show() didn't always fallback to plain text header.
man -P pager; set
Also, shell escaping the pattern prevents you from using regexp syntax.
man FILE isn't portable; use
man -M ... instead.
man FILE used to work in Debian, but doesn't work under Void Linux.
man -l FILE works in Linux and OpenBSD but not on MacOSX / FreeBSD.
Therefore, avoid all this portability mess using
man -M ... instead.
Handle case where roff manual page is missing but HTML version exists.
binman(1): Rename the
load command to
snip and remove
binman convcommand has been removed; use
Upgrade to md2man 4.0, which no longer expands cross references in code spans and code blocks. Your manuals might be rendered differently now.
This release fixes the help options' REGEXP argument under non-Debian systems.
pager(1) isn't a universal command: CentOS uses
less -is instead.
Silence man(1) stderr when displaying dynamically extracted manual.
README: add intro hook and source+result examples.
Document REGEXP argument for help options in
Refer to REGEXP argument as PATTERN like less does.
GH-3: add optional regexp argument to
--help to search in man(1).
--help options in
BinMan.help() can now be optionally
followed by a regular expression argument that specifies text to search
for and, if found, jump to inside the displayed UNIX man page. Such a
regular expression argument can now also be passed into
This release upgrades to md2man 3.0 for improved HTML manuals.
README: add links to package, manuals, and GitHub.
GitHub now supports relative links from the README:
Upgrade to md2man 3.0 for improved HTML manuals.
Rescue error when designated opener is not found:
$ binman -h /gems/opener-0.1.0/lib/opener.rb:97:in `spawn': No such file or directory - xdg-open (Errno::ENOENT) from /gems/opener-0.1.0/lib/opener.rb:97:in `spawn' from /gems/binman-3.3.1/lib/binman.rb:57:in `block in show' from /gems/binman-3.3.1/lib/binman.rb:55:in `each' from /gems/binman-3.3.1/lib/binman.rb:55:in `show' from /gems/binman-3.3.1/lib/binman.rb:88:in `help' from /gems/binman-3.3.1/bin/binman:106:in `<top (required)>' from /bin/binman:23:in `load' from /bin/binman:23:in `<main>'
Fix an undefined local variable or method error:
binman: undefined local variable or method `library' for BinMan:Module
Add binman-rake(1) script to provide access to
Always try showing HTML manual page in web browser from
Upgrade to md2man 2.0.0.
Rename HISTORY to VERSION so it sorts after README.
Add man/man0/ subdir containing README and VERSION.
Ensure that the
binman:web Rake task works the first time through.
Fix "uninitialized constant Md2Man::VERSION" errors in
Hook into the
build Rake task only if Bundler's Rake tasks are loaded:
Thanks to Postmodern for raising this issue.
load() failed when leading comment header missing
lstrip() is too powerful; consume lines carefully
binman helpcommand for use by non-Ruby bin scripts. See README for usage examples from Perl, Python, Node.js, Tcl, AWK, and UNIX shell!
gem install binman --developmenttip in
gem install md2mantip because the former just hangs in RubyGems 1.8.
--help options after standard
BinMan.show(): write temp file because not all systems support
HISTORY: group changes by version number components.
README: add instructions on pre-building man pages.
README: fix installation commands for development.
bundler suggests moving all dev deps into gemspec.
binman/gemspechelper library because it did not play well with Bundler. Use the standard
add_runtime_dependencymethod instead. This example shows what work is involved in upgrading.
binman/Rakefilehelper library now hooks into Bundler's Rake tasks. Be sure to add the
man/**/*files to your gemspec accordingly.
binman/rake_taskshelper library. Use
Upgraded to md2man v1 for Markdown to UNIX man page conversion.
Do not hard-code the version number in
binman/rake_taskslibrary has been renamed (with deprecation) to
binman/rakefile. The deprecation warning will be removed in the next major release.
binman/gemspecpackaging convenience library which automatically builds and includes your UNIX man page files in your gem packages and also adds binman as a runtime and development gem dependency.
BinMan::dump() method and corresponding
binman dump command now
extract the leading comment header from their input before returning the
markdown to roff conversion thereof.
BinMan::read() method and corresponding
binman read command have
been renamed to
binman load respectively.
BinMan::conv()method and corresponding
binman convcommand to encapsulate the markdown to roff conversion process.
bin/script were not displayed. Instead, binman was (incorrectly) always trying to convert the leading comment header from the
bin/script into a UNIX man page for display.
BinMan::Renderer into redcarpet-manpage library.
Forgot to introduce leading comment headers in binman(1) man page.
BinMan.read()now supports embedded document (=begin/=end) comments also. See binman(1) for the new description of leading comment headers.
Ignore encoding comment line after shebang line.
roff: fix first paragraphs inside list items.
gemspec: build man page files before building gem.
binman: raise error and suggest --help option.
README: add link to example of binman markdown.
README: add obligatory screenshot! >:-)
First release! Happy birthday! Woohoo! :-)