افحص مدخلات الوسيط لمضيف Subversion
اقرأ إعدادات servers في Subversion مع قيمها العامة وقواعد مجموعات المضيفين معًا.
بالنسبة إلى الملف ~/.subversion/servers المعتاد لمستخدم Unix، تسرد هذه الفحصّة مدخلات وسيط مختارة وتعيينات مجموعات المضيفين دون طباعة كلمات المرور المحفوظة:
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)أبقِ اسم مضيف المستودع مع هذا المخرجات. فالسكربت يبلّغ عن محتويات الملف، لا عن المسار الذي اختاره Subversion في النهاية.
افحص القسم المسمّى للمجموعة المطابقة إلى جانب global. يقسم قسم groups الأسماء إلى أنماط خوادم؛ وقيم المضيف والمنفذ لمجموعة مطابقة قد تتجاوز الإعدادات الافتراضية، والاستثناءات قد تتجاوز وسيطًا مُعدًّا بخلاف ذلك.
ثم احسب مصادر على مستوى النظام وأخرى خاصة بالمنصة، ودليل إعدادات مخصصًا، وتجاوزات سطر الأوامر. استعلم عن ملفات الحساب أو الاستدعاء الفعلي بدلًا من الدليل الرئيسي لمستخدم آخر.
ينبغي أن يوسم العارض القيم حسب المصدر والنطاق. فسلسلة واحدة غير مؤهلة مثل وسيط النظام تفقد كلاً من القرار الخاص بالمضيف والتمييز بين مدخلات ملف المستخدم وسياسة النظام.