Beispiel #1
0
 def __init__(self, client_cache, user_io, runner, remote_manager, search_manager):
     assert isinstance(user_io, UserIO)
     assert isinstance(client_cache, ClientCache)
     self._client_cache = client_cache
     self._user_io = user_io
     self._runner = runner
     self._manager = ConanManager(client_cache, user_io, runner, remote_manager, search_manager)
Beispiel #2
0
 def __init__(self, paths, user_io, runner, remote_manager):
     assert isinstance(user_io, UserIO)
     assert isinstance(paths, ConanPaths)
     self._conan_paths = paths
     self._user_io = user_io
     self._runner = runner
     self._manager = ConanManager(paths, user_io, runner, remote_manager)
Beispiel #3
0
def get_command():
    def instance_remote_manager(client_cache):
        requester = requests.Session()
        requester.proxies = client_cache.conan_config.proxies
        # Verify client version against remotes
        version_checker_requester = VersionCheckerRequester(
            requester, Version(CLIENT_VERSION),
            Version(MIN_SERVER_COMPATIBLE_VERSION), out)
        # To handle remote connections
        rest_api_client = RestApiClient(out,
                                        requester=version_checker_requester)
        # To store user and token
        localdb = LocalDB(client_cache.localdb)
        # Wraps RestApiClient to add authentication support (same interface)
        auth_manager = ConanApiAuthManager(rest_api_client, user_io, localdb)
        # Handle remote connections
        remote_manager = RemoteManager(client_cache, auth_manager, out)
        return remote_manager

    use_color = get_env("CONAN_COLOR_DISPLAY", 1)
    if use_color and hasattr(sys.stdout, "isatty") and sys.stdout.isatty():
        import colorama
        colorama.init()
        color = True
    else:
        color = False
    out = ConanOutput(sys.stdout, color)
    user_io = UserIO(out=out)

    user_folder = os.getenv("CONAN_USER_HOME", conan_expand_user("~"))

    try:
        # To capture exceptions in conan.conf parsing
        client_cache = ClientCache(user_folder, None, out)
        # obtain a temp ConanManager instance to execute the migrations
        remote_manager = instance_remote_manager(client_cache)

        # Get a DiskSearchManager
        search_adapter = DiskSearchAdapter()
        search_manager = DiskSearchManager(client_cache, search_adapter)
        manager = ConanManager(client_cache, user_io, ConanRunner(),
                               remote_manager, search_manager)

        client_cache = migrate_and_get_client_cache(user_folder, out, manager)
    except Exception as e:
        out.error(str(e))
        sys.exit(True)

    # Get the new command instance after migrations have been done
    remote_manager = instance_remote_manager(client_cache)

    # Get a search manager
    search_adapter = DiskSearchAdapter()
    search_manager = DiskSearchManager(client_cache, search_adapter)
    command = Command(client_cache, user_io, ConanRunner(), remote_manager,
                      search_manager)
    return command
Beispiel #4
0
 def __init__(self, client_cache, user_io, runner, remote_manager, search_manager,
              settings_preprocessor):
     assert isinstance(user_io, UserIO)
     assert isinstance(client_cache, ClientCache)
     self._client_cache = client_cache
     self._user_io = user_io
     self._runner = runner
     self._manager = ConanManager(client_cache, user_io, runner, remote_manager, search_manager,
                                  settings_preprocessor)
     # Patch the tools module with a good requester and user_io
     set_global_instances(self._user_io.out, get_basic_requester(self._client_cache))
Beispiel #5
0
 def __init__(self, client_cache, user_io, runner, remote_manager, search_manager,
              _settings_preprocessor, interactive=True):
     assert isinstance(user_io, UserIO)
     assert isinstance(client_cache, ClientCache)
     self._client_cache = client_cache
     self._user_io = user_io
     self._runner = runner
     self._remote_manager = remote_manager
     self.recorder = ActionRecorder()
     self._manager = ConanManager(client_cache, user_io, runner, remote_manager, search_manager,
                                  _settings_preprocessor, self.recorder)
     if not interactive:
         self._user_io.disable_input()
Beispiel #6
0
 def _init_manager(self, action_recorder):
     """Every api call gets a new recorder and new manager"""
     return ConanManager(self._client_cache, self._user_io, self._runner,
                         self._remote_manager, action_recorder, self._registry,
                         self._graph_manager)
Beispiel #7
0
 def _init_manager(self, action_recorder):
     """Every api call gets a new recorder and new manager"""
     return ConanManager(self._client_cache, self._user_io, self._runner,
                         self._remote_manager, self._search_manager,
                         self._settings_preprocessor, action_recorder, self._registry)