import importlib.resources import os import socket import click from zope import component from ..krb_check import krb_check from .members import members from ceo_common.interfaces import IConfig, IHTTPClient from ceo_common.model import Config, HTTPClient @click.group() @click.pass_context def cli(ctx): # ensure ctx exists and is a dict ctx.ensure_object(dict) princ = krb_check() user = princ[:princ.index('@')] ctx.obj['user'] = user if os.environ.get('PYTEST') != '1': register_services() cli.add_command(members) def register_services(): # Config # This is a hack to determine if we're in the dev env or not if socket.getfqdn().endswith('.csclub.internal'): with importlib.resources.path('tests', 'ceo_dev.ini') as p: config_file = p.__fspath__() else: config_file = os.environ.get('CEO_CONFIG', '/etc/csc/ceo.ini') cfg = Config(config_file) component.provideUtility(cfg, IConfig) # HTTPService http_client = HTTPClient() component.provideUtility(http_client, IHTTPClient)