diff --git a/src/streamer/__init__.py b/src/streamer/__init__.py index edf2a86..dbb9151 100644 --- a/src/streamer/__init__.py +++ b/src/streamer/__init__.py @@ -2,7 +2,7 @@ import glob import os from datetime import datetime from shutil import move -from typing import Generator +from typing import Annotated, Generator import click import typer @@ -54,6 +54,23 @@ def todo() -> None: ) +@app.command() +def edit(number: Annotated[int, typer.Argument()] = 1) -> None: + all_shards = list(all_files(TaskConfiguration)) + sorted_shards = sorted(all_shards, key=lambda s: s.moment) + + if abs(number) >= len(sorted_shards): + raise ValueError("Argument out of range") + + selected_number = number + if selected_number >= 0: + selected_number = len(sorted_shards) - selected_number + else: + selected_number = -selected_number + + click.edit(None, filename=sorted_shards[selected_number].location["file"]) + + @app.command() def new() -> None: streamer_directory = Settings().base_folder