dpkg-db
I've been doing a bit of coding on a database for the configuration
management. The thing doesn't have a name yet, but then again it
doesn't do anything currently either.. I've just revamped all major
datastructres which broke everything.
Anyway, I've though a bit about the shell interface to the database.
What I'm going to do is make a simple utility called dpkg-db which
allows you to access the database. Here is its documentation as I
envision it:
------------------------------------------------------------------------------
Shell interface: dpkg-db
The commands:
create <variable> <template> <package>
Create a new variable using <template>
remove <variable>
Remove variable <variable>
check
Check database integrety
query <subcommand> <variable>
Retrieve information about a variable
Subcommands:
value - get value
type - show variable type
default - show default value
description - show short description
ldescription - show long description
defined - check if variable has value
meta <flag> - check if metaflag <flag> is set
(un)set <subcommand> <variable>
Set or unset information for a variable
Subcommands:
value - change the value. with unset we remove the value
from the database.
meta <flag> - (un)set metaflag <flag>
------------------------------------------------------------------------------
Feel free to make suggestions, since I haven't written a single line of
dpkg-db yet.
Please note we have three seperate entities:
* templates: a description of variables, can define new variable types using
containers.
* variables: a list of (template,name) pairs that define the variables
* the database: place were we store the actual value for variables, if they
are defined. (ie the instantiations of the variables)
On a somewhat related note: I have a friend who is going to do research
on processing huge amounts of data. For that he needs a database which
can handle multiple database drivers, and it seems he could use the same
codebase. I made the whole metavariable-stuff optional in the library,
so we should be able to make it quite fast (he needs to process
something like 100 megabyte/sec). I thought this would make a nice
testbed for high-duty situations :)
Wichert.
--
==============================================================================
This combination of bytes forms a message written to you by Wichert Akkerman.
E-Mail: wakkerma@cs.leidenuniv.nl
WWW: http://www.wi.leidenuniv.nl/~wichert/
Reply to: