XO(1) General Commands Manual XO(1) NAME xo -- emit formatted output based on format string and arguments SYNOPSIS xo [-options] [argument...] DESCRIPTION The xo utility allows command line access to the functionality of the libxo library. Using xo, shell scripts can emit XML, JSON, or HTML using the same commands that emit text output. --close <path> --depth <num> --help --html OR -H --json OR -J --leading-xpath <path> --open <path> --pretty OR -p --style <style> --text OR -T --version --warn OR -W --warn-xml --wrap <path> --xml OR -X --xpath The xo utility accepts a format string suitable for xo_emit(3) and a set of zero or more arguments used to supply data for that string. 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> The --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. 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" } } } } The --open <path> and --close <path> can be used to emit hierarchical in- formation without the matching close and open tag. This allows a shell script to emit open tags, data, and then close tags. The --depth option may be used to set the depth for indentation. The --leading-xpath may be used to prepend data to the XPath values used for HTML output style. #!/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" } } EXAMPLE % xo 'The {:product} is {:status}0 stereo "in route" The stereo is in route % xo -p -X 'The {:product} is {:status}0 stereo "in route" <product>stereo</product> <status>in route</status> SEE ALSO libxo(3), xo_emit(3) ADDITIONAL DOCUMENTATION FreeBSD uses libxo version 0.6.1. Complete documentation can be found on github: http://juniper.github.io/libxo/0.6.1/libxo-manual.html libxo lives on github as: https://github.com/Juniper/libxo The latest release of libxo is available at: https://github.com/Juniper/libxo/releases HISTORY The libxo library was added in FreeBSD 11.0. AUTHOR Phil Shafer FreeBSD ports 15.quarterly December 4, 2014 XO(1)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | SEE ALSO | ADDITIONAL DOCUMENTATION | HISTORY | AUTHOR
Want to link to this manual page? Use this URL:
<https://man.FreeBSD.org/cgi/man.cgi?query=xo&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>