Proxy-Eingaben für einen Subversion-Host prüfen
Die servers-Konfiguration von Subversion lesen, mit globalen Werten und Regeln für Host-Gruppen gemeinsam sichtbar.
Für die übliche Datei ~/.subversion/servers eines Unix-Benutzers listet diese Prüfung ausgewählte Proxy-Eingaben und Zuordnungen von Host-Gruppen auf, ohne gespeicherte Passwörter auszugeben:
from configparser import ConfigParser
from pathlib import Path
settings = ConfigParser(interpolation=None)
settings.read(Path.home() / '.subversion' / 'servers')
for key in ('http-proxy-host', 'http-proxy-port',
'http-proxy-exceptions'):
print(key, settings.get('global', key, fallback=''))
if settings.has_section('groups'):
for group, patterns in settings.items('groups'):
print('group', group, patterns)Behalten Sie den Hostnamen des Repositorys bei dieser Ausgabe. Das Skript meldet Dateiinhalte, nicht die Route, die Subversion letztlich gewählt hat.
Prüfen Sie neben global auch den benannten Abschnitt der passenden Gruppe. Der Abschnitt groups ordnet Namen Server-Mustern zu; Host- und Port-Werte einer passenden Gruppe können Vorgaben überschreiben, und Ausnahmen können einen sonst konfigurierten Proxy umgehen.
Berücksichtigen Sie dann systemweite und plattformspezifische Quellen, ein eigenes Konfigurationsverzeichnis und Überschreibungen auf der Befehlszeile. Fragen Sie die Dateien des tatsächlichen Kontos bzw. Aufrufs ab, nicht das Home-Verzeichnis eines anderen Benutzers.
Eine Anzeige sollte Werte nach Quelle und Geltungsbereich kennzeichnen. Eine einzige unqualifizierte Zeichenkette über den Systemproxy verliert sowohl die hostspezifische Entscheidung als auch die Unterscheidung zwischen Eingaben aus Benutzerdateien und Systemrichtlinie.