chiark / gitweb /
Option --man[ual] to show the manual
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Jul 2020 17:43:34 +0000 (18:43 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 25 Jul 2020 17:43:34 +0000 (18:43 +0100)
Closes #8

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
README.md
nailing-cargo

index a2602a8217bea81d5406ca25da320b108c3b601e..b1946b058172c0293c085bd4baa8af82cd0c0bd5 100644 (file)
--- a/README.md
+++ b/README.md
@@ -365,6 +365,9 @@ Options
 
   * `-h` | `--help`: Print usage summary.
 
+  * `--man` | `--manual`: Format this manual into html using `pandoc`
+    and display it with `w3m`.
+
 Environment of the build command
 --------------------------------
 
index 22d5dd5cea87233c3f7d6848606bccd3e7f99bad..98436be5a58b745dfe2b75a85311cf246e16ae46 100755 (executable)
@@ -25,6 +25,7 @@ options:
 
   -T<arch>  --target=<arch>       Specify target architecture
   -h --help                       Print this message
+  --man --manual                  Display complete manual (in w3m)
 
   -s<subcommand>                  Treat command as `cargo <subcommand>`
   --subcommand-props=<prop>,...   Override command props (see docs)
@@ -105,6 +106,13 @@ sub print_usage () {
   exit 0;
 }
 
+sub show_manual () {
+  my $manual = ($base_path // '.').'/README.md';
+  stat $manual or die "$self: manual not found at $manual: $!\n";;
+  exec 'sh','-ec', 'pandoc -- "$1" 2>&1 | w3m -T text/html', '--', $manual;
+  die "$self: exec sh failed: $!";
+}
+
 sub read_or_enoent ($) {
   my ($fn) = @_;
   if (!open R, '<', $fn) {
@@ -895,6 +903,8 @@ sub parse_args () {
       }
     } elsif (s{^--help$}{}) {
       print_usage();
+    } elsif (s{^--man(?:ual)?$}{}) {
+      show_manual();
     } elsif (s{^--target=}{}) {
       $target = $_;
     } elsif (m{^--(on|off)line$}) {