| Home | Projekte | awadr >

Ein einfaches Script zur Adress- und Notizverwaltung


Adressen, Telefonnummern, Geburtstage, Notizen, ... ein sehr inhomogener Haufen brisanter Daten, der sich einerseits nicht einfach in eine flache Datenbankstruktur stopfen läßt, nicht für jeden ohne weiteres aber unterwegs auch mal mit den Bordmitteln eines Gastrechners einsehbar sein soll ... 348 Zeilen Pythoncode später hat man das Problem halbwegs Griff.

Die Idee stammt übrigens von Reinhard Wobst, der ein ähnliches Projekt schon mal auf "ksh" in der IX formuliert hat.

Anwendung

Zunächst braucht man ein initiales File, das man mit einem normalen Texteditor anlegt und das in etwa so aussieht:

--
Faulpelz, Hans
 Firma: Hack & Run GmbH
 Geb: 01.08.1976
 Notiz: Perl Programmierer, License to chill
--
Bond, James       
 mTel: 0174 42007007
 Firma: Her Majesty's Secret Service
 Notiz: License to kill
--
 ... u.s.w.u.s.f. 
      
Das Programm wird ganz einfach mit
$ python awadr.py  meineadressen.txt 
gestartet. Jetzt zeigt sich folgendes im Terminal
 file: meinadressen.txt, size: 208, entries: 2
 status: unmodified, search: '.', case sensitive, matches: 2
 filter: []
adr[/ednshvq]>

mit h ENTER bekommt man die Hilfe angezeigt
   /[regexp]   sucht die Einträge, die auf "regexp" passen (*)
   f[a1|a2|..] filtert die Muster a1 und a2 im / Kommando
   e[regexp]   öffnet die Einträge, die auf "regexp" passen im Editor (*)
   d[regexp]   löscht die Einträge, die auf "regexp" passen (*)
   n[name]     Erzeugt einen neuen Eintrag, der mit "name" beginnt
   s           zeigt den aktuelle Dateistatus an
   i           schaltet case-senitive Suche an und aus
   v           Anzeige der Programmversion
   q           beendet das Programm

(*) Wenn "regexp" weggelassen wird, wird das Ergebnis des 
letzten "regexp"-Ausdrucks verwendet.

Wenn man also den Eintrag von James anzeigen will, tippt man:
/James
ein, während man die Jungs mit Lizenzen mit dem regulären Ausdruck
/(ch|k)ill
ausfindig macht. Die Daten der neuen Bekanntschaft fügt mit
nRosamunde
hinzu.

Als Editor verwendet das Programm standardmäßig vi und als Anzeigeprogramm less. Um mit nedit zu editieren und die Daten mit more anzuzeigen, wird awadr.py so gestartet:

python awadr.py -e nedit -p more meineadressen.txt 

Um Neugierige von seinem Datenschatz auszuschließen, verwendet man am besten die symmetrische Verschlüsselung von gpg. Die Idee stammt ebenfalls von Reinhard. Somit muss man seinen Secret-Key-Ring nicht unbedingt durch die Gegend schleppen.

gpg -c meineadressen.txt
Auf der Platte befindet sich jetzt zusätzlich das verschlüsslelte File meineadressen.txt.gpg. Man lädt es mit
python awadr.py meineadressen.txt.gpg
und beantwortet die Frage nach dem Passwort. Mit dem File kann man jetzt ganz normal arbeiten. Beim Speichern wird das File meineadressen.txt.gpg zunächst gesichert (*.bak) und die neue Version mit dem gleichen Passwort auf die Platte geschrieben.

awadr.py "merkt sich" das Passwort im Speicher während der gesamten Sitzung. Damit entfällt die nochmalige Abfrage beim evtl. Speichern nach einer Änderung. Auch die Daten des Files liegen zur Laufzeit unverschlüsselt im Speicher.

Download


Home | Impressum
Letzte Aktualisierung am 05. Juni 2004