42 lines
1.1 KiB
Python
Executable File
42 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env -S uv run --script
|
|
# /// script
|
|
# requires-python = ">=3.11"
|
|
# dependencies = []
|
|
# ///
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent))
|
|
from tasks_common import TASKS, render_list
|
|
|
|
|
|
def list_dir(path: Path) -> list[Path]:
|
|
if not path.exists():
|
|
return []
|
|
return sorted(path.glob("*.md"), key=lambda f: f.name, reverse=True)
|
|
|
|
|
|
def main() -> None:
|
|
running = list_dir(TASKS / "running")
|
|
done_all = list_dir(TASKS / "done")
|
|
failed_all = list_dir(TASKS / "failed")
|
|
|
|
if not running and not done_all and not failed_all:
|
|
print('No detached tasks yet. Start one by saying "detach: <your goal>".')
|
|
return
|
|
|
|
sections = []
|
|
if running:
|
|
sections.append(f"## Running ({len(running)})\n\n{render_list(running, len(running))}")
|
|
if done_all:
|
|
sections.append(f"## Done ({len(done_all)})\n\n{render_list(done_all[:10], len(done_all))}")
|
|
if failed_all:
|
|
sections.append(f"## Failed ({len(failed_all)})\n\n{render_list(failed_all[:10], len(failed_all))}")
|
|
|
|
print("\n\n".join(sections))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|