42 lines
1 KiB
Python
Executable file
42 lines
1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import subprocess
|
|
import json
|
|
from datetime import date
|
|
from dateutil.relativedelta import relativedelta, MO
|
|
import click
|
|
|
|
__version__ = "0.1.0"
|
|
|
|
|
|
@click.command()
|
|
@click.version_option(__version__, prog_name="task-status")
|
|
@click.option("--uuid", is_flag=True, help="Display the task UUID")
|
|
def main(uuid):
|
|
today = date.today()
|
|
last_monday = today + relativedelta(weekday=MO(-2))
|
|
|
|
tasks = subprocess.run(
|
|
[
|
|
"task",
|
|
f"end.after:{last_monday}",
|
|
"export",
|
|
"-home",
|
|
"status_report:display",
|
|
],
|
|
capture_output=True,
|
|
)
|
|
|
|
entries = json.loads(tasks.stdout.decode())
|
|
last_project = ""
|
|
for entry in entries:
|
|
if entry["project"] != last_project:
|
|
last_project = entry["project"]
|
|
print(f"* {entry['project']}")
|
|
if uuid:
|
|
print(f"\t* {entry['description']} ({entry['uuid']})")
|
|
else:
|
|
print(f"\t* {entry['description']}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|