NAME
lbdbq - query program for the little brother's
database
SYNOPSIS
lbdbq something
lbdbq [-v|--version|-h|--help]
DESCRIPTION
lbdbq is the client program for the
little brother's database. It will attempt to invoke various
modules to gather information about persons matching
something. E.g., it may look at a list of addresses from
which you have received mail, it may look at YP maps, or it may try
to finger something@<various hosts>.
The behavior is configurable: Upon startup, lbdbq will
source the shell scripts:
- /etc/lbdb.rc
$HOME/.lbdbrc
$HOME/.lbdb/lbdbrc
$HOME/.lbdb/rc
if they exist.
They can be used to set the following global variables:
- MODULES_PATH
- a space separated list of directories, where lbdbq
should look for modules.
- METHODS
- a space separated list of the modules to use.
- SORT_OUTPUT
- If you set this to false or no, lbdbq won't sort
the addresses but returns them in reverse order (which means that
the most recent address in m_inmail database is first). If you set
this to name, lbdbq sorts the output by real name. If you
set this to comment, it sort the output by the comment (for
example the date in m_inmail). If you set this to
address, lbdbq sorts the output by addresses (that's the
default).
- KEEP_DUPES
- If you set this to true or yes, lbdbq won't
remove duplicate addresses with different real name comment
fields.
Note that there are defaults, so you should most probably
modify these variables using constructs like this:
MODULES_PATH="$MODULES_PATH $HOME/lbdb_modules"
Additionally, modules may have configuration variables of their
own.
MODULES
Currently, the following modules are supplied with
lbdb:
- m_finger
- This module will use finger to find out something more about a
person. The list of hosts do be asked is configurable; use the
M_FINGER_HOSTS variable. Note that "localhost" will mean an
invocation of your local finger(1)
binary, and should thus work even if you don't provide the finger
service to the network. m_finger tries to find out the
machines mail domain name in /etc/mailname, by parsing a
sendmail.cf file (if it finds one) and by reading
/etc/hostname and /etc/HOSTNAME. If you know that
this fails on your machine, or you want to force lbdbq to consider
some other name to be the local mail domain name (misconfigured
SUNs come to mind here), you can specify a name using the
MAIL_DOMAIN_NAME variable. If this variable is set by you,
no probing will be done by lbdbq.
- m_inmail
- This module will look up user name fragments in a list of mail
addresses created by lbdb-fetchaddr(1).
- m_passwd
- This module searches for matching entries in your local
/etc/passwd file. It evaluates the local machine mail domain in the
same way m_finger does. If you set
PASSWD_IGNORESYS=true, this module ignores all system
accounts and only finds UIDs between 1000 and 29999 (all other UIDs
are reserved on a Debian system).
- m_yppasswd
- This module searches for matching entries in the NIS password
database using the command ``ypcat passwd''.
- m_nispasswd
- This module searches for matching entries in the NIS+ password
database using the command ``niscat passwd.org_dir''.
- m_getent
- This module searches for matching entries in whatever password
database is configured using the command ``getent passwd''.
- m_pgp2, m_pgp5, m_gpg
- These modules scan your PGP 2.*, PGP 5.* or GnuPG public key
ring for data. They use the programs pgp(1),
pgpk(1), or
gpg(1) to get
the data.
- m_fido
- This module searches your Fido nodelist, stored in
$HOME/.lbdb/nodelist created by nodelist2lbdb(1).
- m_abook
- This module uses the program abook(1), a
text based address book application to search for addresses. You
can define multiple abook address books by setting the variable
ABOOK_FILES to a space separated list.
- m_addr_email
- This module uses the program addr-email(1),
a text based frontend to the Tk addressbook(1)
application.
- m_muttalias
- This module searches the variable MUTTALIAS_FILES (a
space separated list) of files in MUTT_DIRECTORY that
contain mutt aliases. File names without leading slash will have
MUTT_DIRECTORY (defaults to $HOME/.mutt or
$HOME, if $HOME/.mutt does not exist)
prepended before the file name. Absolute file names (beginning with
/) will be taken direct.
- m_pine
- This module searches pine(1)
addressbook files for aliases. To realize this it first inspects
the variable PINERC. If it isn't set, the default
`/etc/pine.conf /etc/pine.conf.fixed .pinerc' is used. To
suppress inspecting the PINERC variable, set it to
no. It than takes all address-book and
global-address-book entries from these pinerc files and adds
the contents of the variable PINE_ADDRESSBOOKS to the list,
which defaults to `/etc/addressbook .addressbook'. Then
these addressbooks are searched for aliases. All filenames without
leading slash are searched in $HOME.
- m_palm
- This module searches the Palm address database using the
Palm::PDB(3pm) and Palm::Address(3pm) Perl modules
from CPAN. It searches in the variable PALM_ADDRESS_DATABASE
or if this isn't set in $HOME/.jpilot/AddressDB.pdb.
- m_gnomecard
- This module searches for addresses in your GnomeCard database
files. The variable GNOMECARD_FILES is a whitespace
separated list of GnomeCard data files. If this variable isn't
defined, the module searches in
$HOME/.gnome/GnomeCard for the GnomeCard database or
at least falls back to $HOME/.gnome/GnomeCard.gcrd.
If a filename does not start with a slash, it is prefixed with
$HOME/.
- m_bbdb
- This module searches for addresses in your (X)Emacs BBDB (big
brother database). It doesn't access ~/.bbdb directly (yet) but
calls emacs(1) or
xemacs(1)
with a special mode to get the information (so don't expect too
much performance in this module). You can configure the
EMACS variable to tell this module which emacsen to use.
Otherwise it will fall back to emacs or xemacs.
- m_ldap
- This module queries an LDAP server using the
Net::LDAP(3pm) Perl modules from CPAN. It can be configured
using an external resource file /etc/lbdb_ldap.rc You can
explicity define a LDAP query in this file or you can use one or
more of the predefined queries from the %ldap_server_db in
this file. For this you have to define a space separated list of
nicknames from entries in the variable LDAP_NICKS.
- m_wanderlust
- This module searches for addresses stored in your
$WANDERLUST_ADDRESSES (or by default in
$HOME/.addresses) file, an addressbook of WanderLust.
- m_osx_addressbook
- This module queries the OS X AddressBook. It is only available
on OS X systems.
- m_evolution
- This module queries the Ximian Evolution address book. It
depends on the program evolution-addressbook-export, which
is shipped with evolution.
Feel free to create your own modules to query other database
resources, YP maps, and the like. m_finger should be a good
example of how to do it.
If you create your own modules or have other changes and feel
that they could be helpful for others, don't hesitate to submit
them to the author for inclusion in later releases.
Finally, to use lbdbq from mutt, add the following line
to your $HOME/.muttrc:
set query_command="lbdbq '%s'"
OPTIONS
- -v | --version
- Print version number of lbdbq.
- -h | --help
- Print short help of lbdbq.
FILES
/etc/lbdb.rc
$HOME/.lbdbrc
$HOME/.lbdb/lbdbrc
$HOME/.lbdb/rc
/usr/lib/lbdb/*
$HOME/.lbdb/m_inmail.list
$HOME/.lbdb/nodelist
SEE ALSO
finger(1),
ypcat(1),
niscat(1),
getent(1),
pgp(1),
pgpk(1),
gpg(1),
mutt(1),
lbdb-fetchaddr(1),
nodelist2lbdb(1),
mutt_ldap_query(1),
abook(1),
addr-email(1),
addressbook(1),
mutt(1),
pine(1),
emacs(1),
xemacs(1),
Palm::PDB(3pm), Palm::Address(3pm),
Net::LDAP(3pm).
CREDITS
Most of the really interesting code of this program
(namely, the RFC 822 address parser used by lbdb-fetchaddr) was
stolen from Michael Elkins' mutt mail user agent. Additional
credits go to Brandon Long for putting the query functionality into
mutt.
Many thanks to the authors of the several modules and
extensions: Ross Campbell <rcampbel@us.oracle.com>
(m_abook, m_yppasswd), Marc de Courville <marc@courville.org> (m_ldap,
mutt_ldap_query), Brendan Cully <brendan@kublai.com>
(m_osx_addressbook), Gabor Fleischer <flocsy@mtesz.hu> (m_pine), Rick
Frankel <rick@rickster.com> (m_gnomecard),
Utz-Uwe Haus <haus@uuhaus.de> (m_bbdb,
m_nispasswd), Torsten Jerzembeck <toje@nightingale.ms.sub.org>
(m_addr_email), Adrian Likins <alikins@redhat.com> (m_getent),
Gergely Nagy <algernon@debian.org>
(m_wanderlust), Dave Pearson <davep@davep.org> (m_palm, lbdb.el),
and Brian Salter-Duke <b_duke@octa4.net.au>
(m_muttalias).
AUTHOR
The lbdb package was initially written by Thomas
Roessler <roessler@guug.de> and is now
maintained and heavily extended by Roland Rosenfeld <roland@spinnaker.de>.