Description
This section covers the details of collecting the tasks Finding differences
Involving the diff utility could be quite an idea, but it is a general differencer, comparing line-by-line. Since we just need to compare some fields, the use of diff would make the whole program a lot more complicated. The first step is to take an input file, and compare it against the current user database. Users which are found in both repositories are kept, those who are only in the Data Source have to be added and the rest is deleted (archived on purpose). To read a file, modules must exists to parse the data source. The usual releases provide one for the SDF file format[1] and an XML one. If you have some other file format, you can either 1. write a module or 2. convert your file format to generic XML. [1] Used in a common German school secretary administration program, called Kolleg. Modules are found by scanning the current working directory for *.so and *.dll files. If you want to know the internals of the Data Source module API, read doc/40_ds_api.html. The user database (for most systems this is the Shadow Password System -- /etc/passwd) is then compared against the Data Source. userdb modules, compared to Data Source modules are a bit more stuffed 'cause there are a hundred ways to store user login data. If you want to know the internals of the back-end module API, read doc/20_backend.html.
|