-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask_cli.py
More file actions
47 lines (45 loc) · 1.45 KB
/
task_cli.py
File metadata and controls
47 lines (45 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python3
import sys
from storage import TaskStorage
from task_manager import TaskManager
storage = TaskStorage()
manager = TaskManager(storage)
if len(sys.argv) < 2:
print('Usage: ./task_cli <command>')
print('Commands:')
print(' add <description>')
print(' update <id> <description>')
print(' delete <id>')
print(' mark-in-progress <id>')
print(' mark-done <id>')
print(' list [status]')
exit()
try:
if sys.argv[1] == 'add':
task = manager.add_task(sys.argv[2])
print(f'Task added (ID: {task.id})')
elif sys.argv[1] == 'update':
id = int(sys.argv[2])
manager.update_task(id, sys.argv[3])
print(f'Task {id} updated')
elif sys.argv[1] == 'delete':
id = int(sys.argv[2])
manager.delete_task(id)
print(f'Task {id} deleted')
elif sys.argv[1] == 'mark-in-progress':
id = int(sys.argv[2])
manager.mark_in_progress(id)
print(f'Task {id} marked as in-progress')
elif sys.argv[1] == 'mark-done':
id = int(sys.argv[2])
manager.mark_done(id)
print(f'Task {id} marked as done')
elif sys.argv[1] == 'list':
tasks = manager.list_tasks(sys.argv[2] if len(sys.argv) > 2 else None)
for task in tasks:
print(f'{task.id}: {task.description} ({task.status})')
print(f'Total tasks: {len(tasks)}')
else:
print('Unknown command')
except ValueError as e:
print(e)