[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ini-style Konfigurationen mit Shellscripten verarbeiten


Hallo,

Raphael Becker schrieb:
> Hallo zusammen,
> 
> auf der Suche nach einer Moeglichkeit, config-Files in Shell wirklich
> sicher zu verarbeiten, bin ich auf confget gestossen.
> 
> http://devel.ringlet.net/textproc/confget/
> 
> Das Tool funktioniert scheinbar ganz gut. ABER: portable Shellscripte
> koennen damit nicht umgehen, weil man nicht annehmen darf, dass "confget"
> auf allen Systemen verfuegbar ist.
> 
> Was man annehmen darf ist, dass ein "standard-sed" oder ein
> "standard-awk" existieren.  Letztlich braucht man nur eine Funktion, die
> ein beliebiges Config-Format in gueltige Bourneshell-Variablenzuweisungen
> umwandelt.

Beliebig wuerde bedeuten, jemand kann mit XML ankommen. ;)

Ich wuerde dafuer voellig auf sed oder awk verzichten und nur bash voraussetzen.
Die meisten Sachen fuer die man sed hernehmen wuerde, sind mit der bash auch
machbar. D.h. man nimmt z.B. var1=$(var2/blafasel/} anstatt sowas mit sed oder
awk zu bewerkstelligen.

Wenn man sich auf das simple und meiner Meinung nach sehr gut
(menschen-)lesbare Format

var = wert

beschraenkt, ist das nicht sonderlich viel was man da tippen muss. Ich schaetze
das erschlaegt man mit 10-20 Zeilen.

Quickalgo:

- Fuer jede Zeile
    - Leading und Trailing Whitespaces loeschen
    - Erstes Zeichen = # -> naechste Zeile (Kommentar)
    ansonsten
    - erstes Wort = variablenname
    - Rest der Zeile nach = und abzueglich leading Whitspaces ist der Wert.

Wer mehr Ansprueche hat, muss eben genau definieren, was er denn einlesen will
und wie robust der "Parser" gegen Mist in der Konfigurationsdatei abgesichert
sein muss. Das kann man beliebig kompliziert gestalten und laesst sich ganz
sicher nicht generell und einfach loesen.

Gruss,

Alexander


--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/