THANDY CLIENT INTERFACE:
thandy-client update [options] [bundlename...]
thandy-client json2xml filename
Recognized options for thandy-client update are:
--repo=
Store downloaded, finished information under .
Defaults to ~/.thandy/cache
--no-download Only decide what to download; don't actually download
anything.
--loop Do not exit after we have nothing more to download; keep
waiting until there's something to do.
--no-packagesys Do not ask any underlying package system about what
versions of things are installed. Assume we need to
fetch all packages not in the cache.
--install Try to install packages after downloading them.
--socks-port=
Run all network operations over the SOCKS4a server at
localhost:
--debug|--info|--warn
Set logging severity.
--force-check
Download a fresh version of the timestamp file, whether
we need it or not.
--controller-log-format
Output log messages in a format designed to be easy
for controllers to read. (See below.)
--download-method=
Choose this download method. Can be used in conjunction
with the socks-port option. Supported methods are:
- direct: downloads the file directly
- bittorrent: use bittorrent for downloading
THE CONTROLLER LOG FORMAT:
All lines are of the form:
Keyword SP (Keyword=QuotedString SP)* NL
Keyword=[A-Za-z0-9_]+
QuotedString=DQ Quoted* DQ
Quoted = (Any character except for \, ", or newline)
| (\\)
| (\")
| (\n)
SP = A single space character.
NL = A newline character
DQ = A double-quote character.
Current message types are:
INFO, WARN, DEBUG
These correspond to regular user-visible log messages.
WANTFILE FILENAME="a relative path in the repository"
Thandy wants to download the listed file from some mirror.
CAN_INSTALL PKG="a relative path in the repository" ITEM="another one"
Thandy has enough information to install something. The 'item' is
an installable item (exe, rpm, msi, etc); the PKG is the json package
descriptor it belongs to.
NO_INSTALL PKG="a relative path in the repository" ITEM="another one"
As CAN_INSTALL, but Thandy has gotten something that it doesn't
have a way to install. Can you help?
THANDY'S JSON2XML FORMAT:
Some people use libraries whose XML parsers are way better than their JSON
parsers, so Thandy includes a quick-and-dirty json2xml converter. It is a
one-way converter that's good enough for Thandy documents, but little else.
Here's the specification for it. CONV.x. indicates the conversion of a
JSON object x into XML.
ESC(x) == x, with the characters &, <, and > escaped.
CONV."x". == ESC(x) if x is a string.
CONV.x. == x if x is an integer, a boolean, or none.
CONV.[a,b,c,...]. ==
- CONV.a.
- CONV.b.
- CONV.c.
CONV.{k1:v1, k2:v2, k3:v3, ...}. ==
CONV.k1:v1.
CONV.k2:v2.
CONV.k3:v3.
CONV.k:v. == CONV.v. if k is a valid XML tag name made up of
nothing but ascii characters.
== CONV.k.
CONV.v.
otherwise