1 |
dpavlin |
237 |
Since version 0.8.7 (October 2002) openisis is able to store |
2 |
|
|
new or updated records in the masterfile. |
3 |
|
|
Programmers may call the function openIsisWrite, |
4 |
|
|
see openisis.c for sample usage. |
5 |
|
|
|
6 |
|
|
From the command line, the openisis executable accepts |
7 |
|
|
a new -write option which specifies a database, |
8 |
|
|
where all retrieved records are written to. |
9 |
|
|
This works with all record selections like dump, search, scan, mfnlist |
10 |
|
|
and the -stream option for reading records from text files. |
11 |
|
|
|
12 |
|
|
examples: |
13 |
|
|
$ |
14 |
|
|
# dump (copy) the whole unesb database to cds |
15 |
|
|
openisis -db db/unesb/unesb -write db/cds/cds |
16 |
|
|
# copy only records found for azteca |
17 |
|
|
openisis -db db/unesb/unesb -search azteca -write db/cds/cds |
18 |
|
|
# add the syspar.par as new record to the cds db |
19 |
|
|
openisis -stream -write db/cds/cds </c/winisis/syspar.par |
20 |
|
|
$ |
21 |
|
|
|
22 |
|
|
|
23 |
|
|
The modified masterfile is readable by both DOS ISIS and WinIsis. |
24 |
|
|
The DOS/Windows version of wwwisis should also work. |
25 |
|
|
No attempt is made to support writing of aligned ("UNIX") masterfiles. |
26 |
|
|
|
27 |
|
|
NOTE: |
28 |
|
|
|
29 |
|
|
You *HAVE* to make sure that only one process has the |
30 |
|
|
database open for writing. |
31 |
|
|
Reading processes, however, should not be affected. |
32 |
|
|
Within Java, use synchronized. |
33 |
|
|
With other environments, use lockfiles or whatever seems fit. |
34 |
|
|
|
35 |
|
|
|
36 |
|
|
CAVEAT: |
37 |
|
|
|
38 |
|
|
The index is NOT updated and we're not planning to write |
39 |
|
|
the update code for the legacy index structures. |
40 |
|
|
(We propose a separate, somewhat different index structure). |
41 |
|
|
The CDS/ISIS for DOS or WinIsis index update functions can be used |
42 |
|
|
to refresh the index. |
43 |
|
|
|
44 |
|
|
|
45 |
|
|
Under Linux this is also possible from batch using dosemu's keystroke feature. |
46 |
|
|
The following was tested with dosemu 1.0.2, |
47 |
|
|
which uses per-user configuration in ~/dosemu. |
48 |
|
|
|
49 |
|
|
- have Micro CDS/ISIS for DOS Version 3.08 installed under |
50 |
|
|
c:\cds (where "c:\" is ~/dosemu/drives/c) |
51 |
|
|
- give it a syspar-entry to use a data dir similar to winisis |
52 |
|
|
5=c:\cds\data\ |
53 |
|
|
- link this data dir to your db/cds/cds |
54 |
|
|
- run something like the following: |
55 |
|
|
$ |
56 |
|
|
# note the dosemu shell script breaks an -I param |
57 |
|
|
# by using $@ instead of "$@" |
58 |
|
|
# |
59 |
|
|
# note the \p300; to wait 3 seconds so that freedos startup doesn't |
60 |
|
|
# eat the keystrokes -- very unreliable of course, |
61 |
|
|
# using dosemu's -U control pipes is much better ... |
62 |
|
|
# |
63 |
|
|
BASE=$HOME/dosemu |
64 |
|
|
/opt/dosemu/bin/dosemu.bin -D-a --Flibdir $BASE/conf \ |
65 |
|
|
--Fimagedir $BASE -f $BASE/conf/dosemurc -O \ |
66 |
|
|
-I 'keystroke "\p300;cd cds\risis\r\p100;i'"${1:-cds}"'\ru\rxxexitemu\r"' \ |
67 |
|
|
2>$BASE/boot.log |
68 |
|
|
$ |