henkp@ruuinf.cs.ruu.nl (Henk P. Penning) (09/11/90)
Archive-name: jinx/08-Sep-90 Original-posting-by: henkp@ruuinf.cs.ruu.nl (Henk P. Penning) Original-subject: Jinx, an interactive database tool in Perl Archive-site: sol.cs.ruu.nl [131.211.80.5] Archive-directory: /pub/UNIX Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti) 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 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.18+ 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 I posted earlier. Jinx and cterm are available from our archive server sol.cs.ruu.nl (131.211.80.5). 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. 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)