XDATA(1) XDATA(1)
NAME
xdata - utilities for handling arbitrary key-value pairs
SYNOPSIS
Common options: [ -h ] [ -t type ] [ -p path ]
xdls [ -i ] [ -l ] [ -e ] [ key | /regexp/ ] ...
xdget key
xdput [ -r ] [ -c ] key
xded [ -n ] key
xdrm [ -i ] [ -e ] ( key | /regexp/ ) ...
xdcp [ -f ] old-key new-key
xdmv [ -f ] old-key new-key
xdsync [ -P ] [ -r rsh ] [ -x xdsync ] [ -v ] ( -s | [
user@]host)
DESCRIPTION
The xdata utilities provide an interface for accessing and
reading arbitrary data stored as key-value pairs in GDBM
databases. The data are stored along with timestamps which
are used by xdsync to synchronise xdata databases among
groups of cooperating hosts.
In addition to the utilities described here, there is a
perl(1) interface to xdata, called Data::XData; this mod-
ule is in the xdata distribution.
Data are stored in files located in a number of possible
directories, given by the environment variable XDPATH or
by the -p command-line option. Several different types of
data can be stored; the type is an arbitrary string, which
is given in the XDTYPE environment variable or by the -t
command-line option.
COMMON OPTIONS
-h Print a brief usage summary.
-p path
Use path to locate xdata databases, instead of the
value of the XDPATH environment variable. With no
arguments, xdls will list every key in the
database.
-t type
Use path to locate xdata databases, instead of the
value of the XDTYPE environment variable.
XDLS
xdls writes a list of named keys, or keys matching the
given regexps, to standard output. If no keys or regexps
are listed, then xdls will list all keys in the selected
database. xdls exits successfully if any key is listed.
-i Names and regular expressions will match case-
insensitively.
-l The size and modification time of each key listed
should be printed, in a format reminiscent of
ls(1).
-e Show internal and metadata keys are shown instead
of user keys.
XDGET
xdget retrieves the datum named key from the database,
emitting it on standard output, exiting successfully if
any data are retrieved.
XDPUT
xdput inserts data from standard input into the database
under the given key, exiting successfully if the data are
stored.
-r Replace an existing key, if one exists.
-n Create a new database (in this first element of the
path) if none exists.
XDED
xded edits the data associated with the given key, by
writing it to a temporary file and invoking an editor (by
default, the value of the EDITOR environment variable, or
/bin/vi) on it. xded exits successfully if the data are
edited.
-n Create and edit a new blank datum if the named key
does not exist.
XDRM
xdrm removes the named keys, or keys matching the given
regexps, from the database, exiting successfully if any
key is deleted.
-i Names and regular expressions will match case-
insensitively.
-e Delete internal and metadata keys are shown instead
of user keys. Use with caution.
XDCP
xdcp copies the named old-key to new-key, exiting success-
fully if the datum is copied.
-f Overwrite an existing new-key, if present.
XDMV
xdmv renames the named old-key to new-key, exiting suc-
cessfully if the datum is renamed.
-f Overwrite an existing new-key, if present.
XDSYNC
xdsync synchronises data in the given database with the
database of the same type on host, optionally logging in
as user.
Because synchronisation relies upon the use of timestamp
information in the database, xdsync will abort if the time
on the remote machine differs from that on the local
machine by a certain margin, by default 60 seconds.
xdsync exits successfully if the synchronisation process
completes without error.
-P The local xdata path will be passed to the remote
machine; this may well be inappropriate, but could
be useful if the remote machine is running a broken
shell.
-r rsh Specifies the program to be used to contact the
remote host, by default, `/usr/bin/rsh' If the
environment variable XDRSH is set, it will override
this value.
-x xdsync
Specifies the name under which to call xdsync on
the remote host, by default `xdsync'
-v Be verbose.
-s Slave mode (internal use only).
BUGS
See the source code.
FILES
Stored under the paths given in the XDPATH environment
variable.
SEE ALSO
gdbm(3), perl(1), Data::XData(3), vi(1),
http://www.ex-parrot.com/~chris/xdata/, README and other
files in the xdata distribution.
AUTHOR
Chris Lightfoot <chris@ex-parrot.com>
COPYING
This program is free software; you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more
details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
02139, USA.
1