Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen

Beitrag von inne » 18.11.2018 14:42:04

Hallo,

ich habe ein Tool das von allem genannten Verwendung macht. Also Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen.

Nehmen wir an eine Option kann via Konfigurationsdatei key = value, via Kommandozeilenargument -key value und Umgebungsvariable export KEY=value gesetzt werden. Wie sollte die Priorität sein?

Ich habe es gerade so abgeändert das vor der Konfigurationsdatei das Kommandozeilenargument und erst danach die Umgebungsvariable ausgewertet wird. Vorher war es so das die Umgebungsvariable den Wert aus Konfigurationsdatei und das Kommandozeilenargument überschrieben hat - das war zum Entwickeln/Debuggen nützlich, aber scheint mir zum konfigurieren falsch.

Wie findet ihr das Sinnvoll?

tobo
Beiträge: 2336
Registriert: 10.12.2008 10:51:41

Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen

Beitrag von tobo » 18.11.2018 16:59:34

inne hat geschrieben: ↑ zum Beitrag ↑
18.11.2018 14:42:04
Ich habe es gerade so abgeändert das vor der Konfigurationsdatei das Kommandozeilenargument und erst danach die Umgebungsvariable ausgewertet wird. Vorher war es so das die Umgebungsvariable den Wert aus Konfigurationsdatei und das Kommandozeilenargument überschrieben hat
In meinen Augen sind beide Vorgehen falsch. Die Umgebunsvariablen sind für alles und jeden zu jeder Zeit, also die default-Einstellung. Die Konfigurationsdatei bezieht sich auf dein Programm, die Startparameter beziehen sich auf den Start jetzt. Eingelesen werden sollte also in der Reihenfolge:
Umgebungsvariable-Konfigurationsdatei-Startparameter.
Die Startparameter haben also die höchste Priorität und überschreiben damit Werte, die durch Umbegungsvariablen oder Konfigurationsdatei eventuell schon gesetzt wurden.

inne
Beiträge: 3289
Registriert: 29.06.2013 17:32:10
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen

Beitrag von inne » 18.11.2018 17:18:10

tobo hat geschrieben: ↑ zum Beitrag ↑
18.11.2018 16:59:34
Die Umgebunsvariablen sind für alles und jeden zu jeder Zeit, also die default-Einstellung. Die Konfigurationsdatei bezieht sich auf dein Programm, die Startparameter beziehen sich auf den Start jetzt.
Ich habe hier neue Umgebungsvariable eingeführt, aber Du hast recht so verhalten sich auch die restlichen.
tobo hat geschrieben: ↑ zum Beitrag ↑
18.11.2018 16:59:34
Eingelesen werden sollte also in der Reihenfolge: Umgebungsvariable-Konfigurationsdatei-Startparameter.
Und das jeweils letzte gilt?!

tobo
Beiträge: 2336
Registriert: 10.12.2008 10:51:41

Re: Konfigurationsdatei, Kommandozeilenargumente und Umgebungsvariablen

Beitrag von tobo » 18.11.2018 18:25:48

inne hat geschrieben: ↑ zum Beitrag ↑
18.11.2018 17:18:10
Und das jeweils letzte gilt?!
Da der letzte Wert den vorletzten Wert überschreibt - ja. Rechts vor links (in der Auflistung).
Man kann das theoretisch noch erweitern um einkompilierte oder programmtechnisch gesetzte Default-Werte. Also Werte z.B., die existieren müssen, wenn das Programm beim ersten Mal startet und danach womöglich eine Konfigurationsdatei anlegt. Oder generell, Werte, die im Programm selbst stehen aber veränderlich sein können. Dann wäre das erweitert: Umgebungsvariable-Programmvariable-Konfigurationsdatei-Parameter.

Antworten