37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""Shared connection settings for the telnet drivers in this directory.
|
|
|
|
Resolved highest-priority-first from: the process environment, `../.env`,
|
|
`../example.env`, then built-in defaults. Keeps addresses and credentials out
|
|
of the scripts (and out of git) — see ../example.env.
|
|
"""
|
|
import os
|
|
|
|
KEYS = ('GPON_HOST', 'GPON_PORT', 'GPON_USER', 'GPON_PASS')
|
|
_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
|
|
def _parse(path):
|
|
vals = {}
|
|
try:
|
|
with open(path) as f:
|
|
for line in f:
|
|
line = line.strip()
|
|
if not line or line.startswith('#') or '=' not in line:
|
|
continue
|
|
k, v = line.split('=', 1)
|
|
vals[k.strip()] = v.strip().strip('"').strip("'")
|
|
except OSError:
|
|
pass
|
|
return vals
|
|
|
|
|
|
_cfg = _parse(os.path.join(_ROOT, 'example.env'))
|
|
_cfg.update(_parse(os.path.join(_ROOT, '.env')))
|
|
_cfg.update({k: v for k, v in os.environ.items() if k in KEYS})
|
|
|
|
HOST = _cfg.get('GPON_HOST') or '192.168.100.1'
|
|
PORT = int(_cfg.get('GPON_PORT') or 23)
|
|
USER = _cfg.get('GPON_USER') or 'root'
|
|
PASS = _cfg.get('GPON_PASS') or 'admin'
|