עבור הקובץ ~/.subversion/servers הרגיל של משתמש Unix, הבדיקה הזו מפרטת קלטי proxy נבחרים ומיפויי קבוצות מארחים בלי להדפיס סיסמאות שמורות:

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 ממפה שמות לתבניות שרת; ערכי המארח והפורט של קבוצה מתאימה יכולים לעקוף את ברירות המחדל, וחריגים יכולים לעקוף proxy שהוגדר אחרת.

לאחר מכן התחשבו במקורות ברמת המערכת ובמקורות ייחודיים לפלטפורמה, בספריית תצורה מותאמת ובעקיפות משורת הפקודה. שאלו את הקבצים של החשבון או הקריאה בפועל, ולא את ספריית הבית של משתמש אחר.

מציג צריך לתייג ערכים לפי מקור והיקף. מחרוזת אחת לא מסויגת על proxy מערכת מאבדת גם את ההחלטה הייחודית למארח וגם את ההבחנה בין קלט מקובץ משתמש לבין מדיניות מערכת.

מאמרים קשורים