From 11c9541b53b9a20c83efa92cf0c4e58ec5a787f5 Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Thu, 25 Dec 2014 23:55:43 +0100 Subject: [PATCH] Add more output to `discover` command. --- vdirsyncer/cli/__init__.py | 8 ++++---- vdirsyncer/cli/tasks.py | 10 ++++++++++ vdirsyncer/cli/utils.py | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/vdirsyncer/cli/__init__.py b/vdirsyncer/cli/__init__.py index 3769ca8..318dec7 100644 --- a/vdirsyncer/cli/__init__.py +++ b/vdirsyncer/cli/__init__.py @@ -11,9 +11,9 @@ import functools import os import sys -from .tasks import sync_pair -from .utils import CliError, WorkerQueue, cli_logger, collections_for_pair, \ - handle_cli_error, load_config, parse_pairs_args +from .tasks import discover_collections, sync_pair +from .utils import CliError, WorkerQueue, cli_logger, handle_cli_error, \ + load_config, parse_pairs_args from .. import __version__, log from ..doubleclick import click from ..utils import expand_path @@ -138,7 +138,7 @@ def discover(ctx, pairs, max_workers): wq.spawn_worker() wq.put(functools.partial( - (lambda wq, **kwargs: collections_for_pair(**kwargs)), + discover_collections, status_path=general['status_path'], name_a=name_a, name_b=name_b, pair_name=pair, config_a=all_storages[name_a], config_b=all_storages[name_b], pair_options=pair_options, diff --git a/vdirsyncer/cli/tasks.py b/vdirsyncer/cli/tasks.py index 6992d71..5a336a8 100644 --- a/vdirsyncer/cli/tasks.py +++ b/vdirsyncer/cli/tasks.py @@ -8,6 +8,7 @@ ''' import functools +import json from .utils import CliError, JobFailed, cli_logger, collections_for_pair, \ get_status_name, handle_cli_error, load_status, save_status, \ @@ -81,3 +82,12 @@ def sync_collection(wq, pair_name, collection, config_a, config_b, save_status(general['status_path'], pair_name, collection, data_type='items', data=status) + + +def discover_collections(wq, pair_name, **kwargs): + rv = collections_for_pair(pair_name=pair_name, **kwargs) + collections = list(c for c, (a, b) in rv) + if collections == [None]: + collections = None + cli_logger.info('Saved for {}: collections = {}' + .format(pair_name, json.dumps(collections))) diff --git a/vdirsyncer/cli/utils.py b/vdirsyncer/cli/utils.py index 59115c2..d8be0fd 100644 --- a/vdirsyncer/cli/utils.py +++ b/vdirsyncer/cli/utils.py @@ -136,7 +136,7 @@ def collections_for_pair(status_path, name_a, name_b, pair_name, config_a, :param skip_cache: Whether to skip the cached data and always do discovery. Even with this option enabled, the new cache is written. - :returns: iterable of (collection, a_args, b_args) + :returns: iterable of (collection, (a_args, b_args)) ''' rv = load_status(status_path, pair_name, data_type='collections') cache_key = _get_collections_cache_key(pair_options, config_a, config_b)