diff --git a/Konzept.v2 b/Konzept.v2 new file mode 100644 index 0000000..80175f4 --- /dev/null +++ b/Konzept.v2 @@ -0,0 +1,54 @@ +* Verzeichnisstruktur aendern + modul/ + os/ + linux/ + osx/ + host/ + hostname1/ + hostname2/ + any/ + +* Auswahl und Reihenfolge Dateien + +- 3 Kategorien mit Default Order + - 1: any + - 10: os + - 50: host +- hoechste Order kommt am Ende (== ueberschreibt im Zweifel Optionen von zuvor) +- userconfig.cfg Config Datei in Verzeichnissen modul/, + modul/os, modul/os/$foo, + modul/host, modul/host/$foo, + modul/any + - Format ConfigParser, [section] mit key = value + - [global] section gilt fuer alle Dateien ab diesem Verzeichnis + - userconfig.cfg in tieferem Verzeichnis ueberschreibt im Zweifel darueberliegende + Werte + - Es koennen auch Optionen pro Datei/Verzeichnis unterhalb /modul/any oder + /modul/{host,os}/$foo angegeben werden, Beispiel Tree: + /bash/userconfig.cfg + /bash/any/.bash_profile + /bash/any/.bashrc + /bash/os/Linux/.bashrc + /bash/os/osx/.bashrc + /bash/host/glitters/.bash_profile + /bash/host/glitters/.bashrc + /bash/host/ra/.bash_logout + /bash/host/ra/.foobar/baz + + userconfig.cfg kann Referenzen auf Dateinamen als Section enthalten: + [global] + dest = $HOME + commentstring = # + + [.foobar/baz] + dest = $HOME/.tmp + + Damit wird .foobar/baz nach $HOME/.tmp kopiert, alles andere direkt nach $HOME + - Optionen fuer Config: + - dest = string : Zielverzeichnis + - commentstring = string : Kommentar der Config-Datei (fuer SVN-Header usw) + - order = int : Manuell order setzen + - first = bool : diesen Teil ganz oben setzen (hilft nicht bei mehreren + config-dateien, dann order) + - last = bool : diesen Teil ganz unten setzen (hilft nicht bei mehreren + config-dateien, dann oder)