diff options
author | Marcel Moolenaar <marcel@FreeBSD.org> | 2014-10-23 22:30:14 +0000 |
---|---|---|
committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2014-10-23 22:30:14 +0000 |
commit | 313376588638950ba1e93c403dd8c97bc52fd3a2 (patch) | |
tree | ce8b178967e5d33cbba89d0b2f3d2c2ea45616cb /contrib/libxo/xo/xo.1 | |
parent | 2c746c6a0923489edeed7d947875d413b021303d (diff) | |
download | src-313376588638950ba1e93c403dd8c97bc52fd3a2.tar.gz src-313376588638950ba1e93c403dd8c97bc52fd3a2.zip |
Import libxo 0.1.4
Obtained from: https://github.com/Juniper/libxo
Sponsored by: Juniper Networks, Inc.
Notes
Notes:
svn path=/head/; revision=273562
Diffstat (limited to 'contrib/libxo/xo/xo.1')
-rw-r--r-- | contrib/libxo/xo/xo.1 | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/contrib/libxo/xo/xo.1 b/contrib/libxo/xo/xo.1 new file mode 100644 index 000000000000..1833b0a4559c --- /dev/null +++ b/contrib/libxo/xo/xo.1 @@ -0,0 +1,190 @@ +.\" # +.\" # Copyright (c) 2014, Juniper Networks, Inc. +.\" # All rights reserved. +.\" # This SOFTWARE is licensed under the LICENSE provided in the +.\" # ../Copyright file. By downloading, installing, copying, or +.\" # using the SOFTWARE, you agree to be bound by the terms of that +.\" # LICENSE. +.\" # Phil Shafer, July 2014 +.\" +.Dd July, 2014 +.Dt LIBXO 3 +.Os +.Sh NAME +.Nm xo +.Nd emit formatted output based on format string and arguments +.Sh SYNOPSIS +.Nm xo +.Op Fl options +.Op Ar argument... +.Sh DESCRIPTION +The +.Nm xo +utility allows command line access to the functionality of +the +.Em libxo +library. Using +.Nm xo , +shell scripts can emit +.Em XML , +.Em JSON , or +.Em HTML +using the same commands that emit text output. +.Pp +.Bl -tag -width "12345678901234567" +.It Fl "-close <path>" +Close tags for the given path +.It Fl "-depth <num>" +Set the depth for pretty printing +.It Fl "-help" +Display this help text +.It Fl "-html OR -H" +Generate HTML output +.It Fl "-json OR -J" +Generate JSON output +.It Fl "-leading-xpath <path>" +Add a prefix to generated XPaths (HTML) +.It Fl "-open <path>" +Open tags for the given path +.It Fl "-pretty OR -p" +Make 'pretty' output (add indent, newlines) +.It Fl "-style <style>" +Generate given style (xml, json, text, html) +.It Fl "-text OR -T" +Generate text output (the default style) +.It Fl "-version" +Display version information +.It Fl "-warn OR -W" +Display warnings in text on stderr +.It Fl "-warn-xml" +Display warnings in xml on stdout +.It Fl "-wrap <path>" +Wrap output in a set of containers +.It Fl "-xml OR -X" +Generate XML output +.It Fl "-xpath" +Add XPath data to HTML output); +.El +.Pp +The +.Nm xo +utility accepts a format string suitable for +.Xr xo_emit 3 +and a set of zero or more arguments used to supply data for that string. +.Bd -literal -offset indent + xo "The {k:name} weighs {:weight/%d} pounds.\n" fish 6 + + TEXT: + The fish weighs 6 pounds. + XML: + <name>fish</name> + <weight>6</weight> + JSON: + "name": "fish", + "weight": 6 + HTML: + <div class="line"> + <div class="text">The </div> + <div class="data" data-tag="name">fish</div> + <div class="text"> weighs </div> + <div class="data" data-tag="weight">6</div> + <div class="text"> pounds.</div> + </div> +.Ed +.Pp +The +.Fl "-wrap <path>" +option can be used to wrap emitted content in a +specific hierarchy. The path is a set of hierarchical names separated +by the '/' character. +.Bd -literal -offset indent + xo --wrap top/a/b/c '{:tag}' value + + XML: + <top> + <a> + <b> + <c> + <tag>value</tag> + </c> + </b> + </a> + </top> + JSON: + "top": { + "a": { + "b": { + "c": { + "tag": "value" + } + } + } + } +.Ed +.Pp +The +.Fl "\-open <path>" +and +.Fl "\-close <path>" +can be used to emit +hierarchical information without the matching close and open +tag. This allows a shell script to emit open tags, data, and +then close tags. The +.Fl \-depth +option may be used to set the +depth for indentation. The +.Fl "\-leading-xpath" +may be used to +prepend data to the XPath values used for HTML output style. +.Bd -literal -offset indent + #!/bin/sh + xo --open top/data + xo --depth 2 '{tag}' value + xo --close top/data + XML: + <top> + <data> + <tag>value</tag> + </data> + </top> + JSON: + "top": { + "data": { + "tag": "value" + } + } +.Ed +.Pp +.Sh EXAMPLE +.Bd -literal -offset indent + % xo 'The {:product} is {:status}\n' stereo "in route" + The stereo is in route + % xo -p -X 'The {:product} is {:status}\n' stereo "in route" + <product>stereo</product> + <status>in route</status> +.Ed +.Pp +.Sh ADDITIONAL DOCUMENTATION +.Pp +Complete documentation can be found on github: +.Bd -literal -offset indent +http://juniper.github.io/libxo/libxo-manual.html +.Ed +.Pp +libxo lives on github as: +.Bd -literal -offset indent +https://github.com/Juniper/libxo +.Ed +.Pp +The latest release of libxo is available at: +.Bd -literal -offset indent +https://github.com/Juniper/libxo/releases +.Ed +.Sh SEE ALSO +.Xr xo_emit 3 +.Sh HISTORY +The +.Fa libxo +library was added in FreeBSD 11.0. +.Sh AUTHOR +Phil Shafer |