Files
bearhub/bauh/cli/app.py
2020-04-14 10:00:00 -03:00

57 lines
2.2 KiB
Python

import os
import urllib3
from bauh import ROOT_DIR
from bauh.api.abstract.context import ApplicationContext
from bauh.api.http import HttpClient
from bauh.cli import __app_name__, cli_args
from bauh.cli.controller import CLIManager
from bauh.context import generate_i18n, DEFAULT_I18N_KEY
from bauh.view.core import config, gems
from bauh.view.core.controller import GenericSoftwareManager
from bauh.view.core.downloader import AdaptableFileDownloader
from bauh.view.util import logs, util, resource
from bauh.view.util.cache import DefaultMemoryCacheFactory
from bauh.view.util.disk import DefaultDiskCacheLoaderFactory
def main():
if not os.getenv('PYTHONUNBUFFERED'):
os.environ['PYTHONUNBUFFERED'] = '1'
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
args = cli_args.read()
logger = logs.new_logger(__app_name__, False)
app_config = config.read_config(update_file=True)
http_client = HttpClient(logger)
i18n = generate_i18n(app_config, resource.get_path('locale'))
cache_factory = DefaultMemoryCacheFactory(expiration_time=0)
context = ApplicationContext(i18n=i18n,
http_client=http_client,
download_icons=bool(app_config['download']['icons']),
app_root_dir=ROOT_DIR,
cache_factory=cache_factory,
disk_loader_factory=DefaultDiskCacheLoaderFactory(logger),
logger=logger,
distro=util.get_distro(),
file_downloader=AdaptableFileDownloader(logger, bool(app_config['download']['multithreaded']),
i18n, http_client),
app_name=__app_name__)
managers = gems.load_managers(context=context, locale=i18n.current_key, config=app_config, default_locale=DEFAULT_I18N_KEY)
cli = CLIManager(GenericSoftwareManager(managers, context=context, config=app_config))
if args.command == 'updates':
cli.list_updates(args.format)
if __name__ == '__main__':
main()