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-help(1) - add help options to your program
- binman-html(1) - HTML manpage from header comment
- binman-rake(1) - run rake(1) tasks from command line
- binman-roff(1) - UNIX manpage from header comment
- binman-show(1) - show manpage from header comment
- binman-text(1) - extract embedded manpage sources
-
binman-rake(1): allow task names without namespace.
You can now run
binman-rake man
instead ofbinman-rake binman:man
, and similarlybinman-rake web
instead ofbinman-rake binman:web
, and similarlybinman-rake mkd
instead ofbinman-rake binman:mkd
.
-
README: an epic revision; add copy of md2man(5).
-
README: add dasht manual pages to examples section.
-
Clarify optionalness of PATTERN in
--help
option. -
Upgrade to md2man version 5.1.
-
Rename
binman snip
command tobinman text
. -
Rename
binman conv
command tobinman roff
and make it operate on a bin script containing an embedded manual page rather than the extracted latter. -
Add
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).
- Add
binman:mkd
rake task to extractman/man1/*.1.markdown
files.
-
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.
-
Failure when
binman help
is called without ARGV.binman.rb:63:in
help': undefined method
index' for nil:NilClass (NoMethodError) -
Failure when
binman show
is called without ARGV.binman.rb:47:in `basename': no implicit conversion of IO into String (TypeError)
-
Failure when
binman show
is given input on STDIN.binman.rb:51:in `basename': no implicit conversion of IO into String (TypeError)
- Print path of HTML man page to STDOUT when launching browser.
-
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.
% rake build mkdir -p man/man1 rake aborted! LoadError: cannot load such file -- md2man/rakefile.rb ./lib/binman/rakefile.rb:29:in
load' ./lib/binman/rakefile.rb:29:in
block in <top (required)>' Tasks: TOP => build => binman => binman:man (See full trace by running task with --trace) exit 1 -
Show HTML manual only as fallback to TTY man page.
This prevents annoying browser launches every time you run
--help
. -
BinMan::show()
didn't always fallback to plain text header. -
Don't override
man -P
pager; set$LESS
and$MORE
instead.Also, shell escaping the pattern prevents you from using regexp syntax.
-
man FILE
isn't portable; useman -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 tosnip
and removeconv
.-
The
binman conv
command has been removed; usemd2man-roff
instead. -
We no longer require a specific md2man version at runtime; any will do.
-
-
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
bin/*
. -
Refer to REGEXP argument as PATTERN like less does.
-
GH-3: add optional regexp argument to
-h
/--help
to search in man(1).The
-h
and--help
options inBinMan.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 intoBinMan.show()
.
- README: add syntax highlighting to code snippets.
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.
Patch:
-
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
Other:
- Add screenshot to git repo since OmpLoader is dead.
Patch:
- Ensure that md2man 2.0 is loaded before running any BinMan rake tasks.
Minor:
-
Add binman-rake(1) script to provide access to
binman/rakefile
tasks. -
Always try showing HTML manual page in web browser from
BinMan.show()
.
Other:
-
Upgrade to md2man 2.0.0.
-
Rename HISTORY to VERSION so it sorts after README.
-
Add man/man0/ subdir containing README and VERSION.
Patch:
-
Ensure that the
binman:web
Rake task works the first time through. -
Fix "uninitialized constant Md2Man::VERSION" errors in
binman/rakefile
. -
Hook into the
build
Rake task only if Bundler's Rake tasks are loaded:Thanks to Postmodern for raising this issue.
Minor:
- add binman:web task to produce man pages in HTML
Other:
- gemspec: package only roff files from inside man/
Patch:
-
load() failed when leading comment header missing
-
lstrip() is too powerful; consume lines carefully
Other:
- fix broken link to redcarpet library home page
Minor:
- Added
binman help
command for use by non-Ruby bin scripts. See README for usage examples from Perl, Python, Node.js, Tcl, AWK, and UNIX shell!
Patch:
- Replace
gem install binman --development
tip inBinMan::conv()
withgem install md2man
tip because the former just hangs in RubyGems 1.8.
Other:
- Shorten markdown headings; improve documentation; clean up.
Patch:
-
BinMan.help(): ignore
-h
and--help
options after standard--
flag. -
BinMan.show(): write temp file because not all systems support
man -l
.
Other:
-
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.
Major:
- Removed the
binman/gemspec
helper library because it did not play well with Bundler. Use the standardadd_runtime_dependency
method instead. This example shows what work is involved in upgrading.
Minor:
- The
binman/Rakefile
helper library now hooks into Bundler's Rake tasks. Be sure to add theman/**/*
files to your gemspec accordingly.
Major:
- Removed the deprecated
binman/rake_tasks
helper library. Usebinman/rakefile
instead.
Patch:
- Fixed infinite looping in the
binman/gemspec
helper library.
Other:
-
Upgraded to md2man v1 for Markdown to UNIX man page conversion.
-
Do not hard-code the version number in
binman/gemspec
helper.
Alert:
- The
binman/rake_tasks
library has been renamed (with deprecation) tobinman/rakefile
. The deprecation warning will be removed in the next major release.
Minor:
- Add
binman/gemspec
packaging 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.
Major:
-
The
BinMan::dump()
method and correspondingbinman dump
command now extract the leading comment header from their input before returning the markdown to roff conversion thereof. -
The
BinMan::read()
method and correspondingbinman read
command have been renamed toBinMan::load()
andbinman load
respectively.
Minor:
- Added
BinMan::conv()
method and correspondingbinman conv
command to encapsulate the markdown to roff conversion process.
Patch:
- Pre-built man pages included alongside a
bin/
script were not displayed. Instead, binman was (incorrectly) always trying to convert the leading comment header from thebin/
script into a UNIX man page for display.
Other:
- README: explain dev deps and
man/
dir packaging.
Minor:
- The Redcarpet2 library is not a runtime gem dependency anymore.
Other:
-
Extracted
BinMan::Renderer
into redcarpet-manpage library. -
Forgot to introduce leading comment headers in binman(1) man page.
Minor:
BinMan.read()
now supports embedded document (=begin/=end) comments also. See binman(1) for the new description of leading comment headers.
Patch:
-
Ignore encoding comment line after shebang line.
-
roff: fix first paragraphs inside list items.
Other:
-
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! :-)