[comp.sources.wanted] Is there a UNIX generic database like the bib utilities?

telfeyan@zip.eecs.umich.edu (Roland Telfeyan) (02/03/91)

Is there any source code for just a flat-file database, that can
be used for maintaining names, addresses, phones, e-mail addresses,
and notes?

Thanks.  E-mail replies would be appreciated.

Roland

henkp@ruuinf.cs.ruu.nl (Henk P. Penning) (02/06/91)

In article <1991Feb3.065249.12537@zip.eecs.umich.edu>
telfeyan@zip.eecs.umich.edu (Roland Telfeyan) writes:

>Is there any source code for just a flat-file database, that can
>be used for maintaining names, addresses, phones, e-mail addresses,
>and notes?

>Roland

I have put together a system for manipulating simple databases.
It is called 'jinx'. I wrote it for the secretaries at our department.
Jinx is easy to use but has powerful relational facilities as well.

Jinx requires Perl and curses (one more reason to get Perl ;-).

Jinx is an interactive, menu-driven program which handles databases
consisting of lists of records, each a list of fields.
In a given database, every record contains the same number of fields.
In short, a database is structured like the /etc/passwd file.
For each field a regexp may be specified which is used as a constraint on the
data which may be entered in the field. Users may override this constraint.

There is no limit on the number of records in a database,
or the number of fields in a record, or the length of a field.
A field may contain arbitrary ascii-printable data.
Jinx uses curses so it runs on any terminal or window of any size.
Jinx doesn't require a 'special' perl, plain PL.37+ will do.

With Jinx you can perform operations on a database like:
-- update, add, copy and delete records
-- test if all fields in all records match their associated regexp
-- select/delete a subset of the records by various means
-- put back some of the deleted records
-- sort the database on one or more key-fields
-- project on one or more columns
-- join with another database
-- add a column to the database (that is: add a field to every record)
-- insert some records from another database
-- test if some given combination of fields is uniq for all records
-- compute fields as a function of other fields in the record

A database is represented by two files, both of them ordinary, editable files.
A simple report generator is provided. Some of the main functions are available
as shell-callable perl scripts.

Jinx requires the 'cterm' package. Jinx and cterm are available from our
archive server sol.cs.ruu.nl (131.211.80.5) by ftp or mail.
If you have ftp, get 'cterm.shar.Z' and 'jinx.shar.Z' from directory 'pub/UNIX'.
If not, send a message to 'mail-server@cs.ruu.nl' containing the next 4 lines:
begin
send UNIX/cterm.shar
send UNIX/jinx.shar
end
The mail-server will send you the compressed, uuencoded stuff.
Add a 'send HELP' line if this is the first time you use our archive.

Jinx+tools+man+doc is about 4500 lines, (compressed 60 KB).
A jinx tutorial (in LaTeX) is included in the package.
A PostScript version is available in 'UNIX/jinx.ps' in our archive.

Please, try out Jinx and let me know what you think.

				===  HenkP  ===

PS. Jinx is distributed under the terms of the Gnu General Public Licence.

-- 
Henk P. Penning, Dept of Computer Science, Utrecht University.
Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.
Telephone: +31-30-534106
e-mail   : henkp@cs.ruu.nl (uucp to hp4nl!ruuinf!henkp)