From be1a8a7f7ab9f9b2dc17444a5c99007b834ee004 Mon Sep 17 00:00:00 2001 From: 3wc <3wc@doesthisthing.work> Date: Wed, 1 Nov 2023 21:56:08 +0000 Subject: [PATCH] Tweak `kimai check` command --- hamstertools/__init__.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/hamstertools/__init__.py b/hamstertools/__init__.py index 1d91ba2..e3ffc96 100755 --- a/hamstertools/__init__.py +++ b/hamstertools/__init__.py @@ -347,14 +347,14 @@ def _get_kimai_mapping_file(path, category_search=None): return open(path) -@kimai.command("sync") +@kimai.command() @click.option( "--mapping-path", help="Mapping file (default ~/.local/share/hamster/mapping.kimai.csv)", multiple=True, ) @click.argument("username") -@click.argument("api_key") +@click.argument("api_key", envvar="KIMAI_API_KEY") @click.option("--just-errors", "just_errors", is_flag=True, help="Only display errors") @click.option("--ignore-activities", is_flag=True, help="Ignore missing activities") def check(username, api_key, just_errors, ignore_activities, mapping_path=None): @@ -364,18 +364,19 @@ def check(username, api_key, just_errors, ignore_activities, mapping_path=None): kimai_api_url = "https://kimai.autonomic.zone/api" - if type(mapping_path) == tuple: - mapping_files = [] - for mapping_path_item in mapping_path: - mapping_file = _get_kimai_mapping_file(mapping_path_item) - next(mapping_file) - mapping_files.append(mapping_file) - mapping_reader = csv.reader(chain(*mapping_files)) - else: - if mapping_path is None: - mapping_path = HAMSTER_DIR / "mapping.kimai.csv" - mapping_file = _get_kimai_mapping_file(mapping_path) - mapping_reader = csv.reader(mapping_file) + if len(mapping_path) == 0: + mapping_path = (HAMSTER_DIR / "mapping.kimai.csv",) + + mapping_files = [] + for mapping_path_item in mapping_path: + if not Path(mapping_path_item).exists(): + raise click.UsageError(f'{mapping_path_item} does not exist') + + mapping_file = _get_kimai_mapping_file(mapping_path_item) + next(mapping_file) + mapping_files.append(mapping_file) + + mapping_reader = csv.reader(chain(*mapping_files)) next(mapping_reader) @@ -401,7 +402,6 @@ def check(username, api_key, just_errors, ignore_activities, mapping_path=None): for row in mapping_data: # Check if each mapping still exists in Kimai - matching_customers = list(filter(lambda x: x["name"] == row[0], customers)) if row[0] in found_customers: just_errors or click.secho(