Commit 92067452 authored by Gökçen Nurlu's avatar Gökçen Nurlu
Browse files

Add no-fetch flag for 'bst pull' command

parent abef70fe
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -433,8 +433,10 @@ def track(app, elements, deps, except_, cross_junctions):
              help="The URL of the remote cache (defaults to the first configured cache)")
@click.argument('elements', nargs=-1,
                type=click.Path(readable=False))
@click.option('--no-fetch', 'no_fetch', default=False, is_flag=True,
              help="Disable auto-fetching of junction(s) automatically")
@click.pass_obj
def pull(app, elements, deps, remote):
def pull(app, elements, deps, remote, no_fetch):
    """Pull a built artifact from the configured remote artifact cache.

    By default the artifact will be pulled one of the configured caches
@@ -448,7 +450,7 @@ def pull(app, elements, deps, remote):
        all:   All dependencies
    """
    with app.initialized(session_name="Pull"):
        app.stream.pull(elements, selection=deps, remote=remote)
        app.stream.pull(elements, selection=deps, remote=remote, no_fetch=no_fetch)


##################################################################
+4 −2
Original line number Diff line number Diff line
@@ -289,13 +289,15 @@ class Stream():
    #    targets (list of str): Targets to pull
    #    selection (PipelineSelection): The selection mode for the specified targets
    #    remote (str): The URL of a specific remote server to pull from, or None
    #    no_fetch (bool): Flag to disable auto-fetch of junctions needed by `targets`
    #
    # If `remote` specified as None, then regular configuration will be used
    # to determine where to pull artifacts from.
    #
    def pull(self, targets, *,
             selection=PipelineSelection.NONE,
             remote=None):
             remote=None,
             no_fetch):

        use_config = True
        if remote:
@@ -305,7 +307,7 @@ class Stream():
                                 selection=selection,
                                 use_artifact_config=use_config,
                                 artifact_remote_url=remote,
                                 fetch_subprojects=True)
                                 fetch_subprojects=not no_fetch)

        if not self._artifacts.has_fetch_remotes():
            raise StreamError("No artifact caches available for pulling artifacts")