22
33from typing import Callable
44
5+ import typer
6+
57from trushell .core .database import complete_todo , delete_todo , get_all_todos , insert_todo , update_todo
68from trushell .core .models import Todo
79
@@ -14,7 +16,7 @@ def add_task(args: str) -> None:
1416 addtask task text here
1517 """
1618 if not args .strip ():
17- print ( "Usage: task add < task> [ category]" )
19+ typer . secho ( '⚠️ Missing arguments. Syntax: addtask " task-name" " category"' , fg = typer . colors . YELLOW )
1820 return
1921
2022 # Try to parse quoted arguments: "task text" "category"
@@ -33,54 +35,54 @@ def add_task(args: str) -> None:
3335
3436 todo = Todo (task = task_text , category = category )
3537 insert_todo (todo )
36- print ( " Task added." )
38+ typer . secho ( "✅ Task added.", fg = typer . colors . GREEN )
3739
3840
3941def show_tasks (_ : str ) -> None :
4042 """Display the current todo list."""
4143 tasks = get_all_todos ()
4244 if not tasks :
43- print ("No tasks found." )
45+ typer . echo ("No tasks found." )
4446 return
4547
4648 for index , task in enumerate (tasks , start = 1 ):
4749 status = "✅" if task .status == 2 else "❌"
48- print (f"{ index } . { task .task } [{ task .category } ] { status } " )
50+ typer . echo (f"{ index } . { task .task } [{ task .category } ] { status } " )
4951
5052
5153def complete_task (args : str ) -> None :
5254 """Mark a todo item as complete."""
5355 if not args .strip () or not args .strip ().isdigit ():
54- print ( " Usage: task done <task-number>" )
56+ typer . secho ( "⚠️ Usage: task done <task-number>", fg = typer . colors . YELLOW )
5557 return
5658
5759 index = int (args .strip ()) - 1
5860 try :
5961 complete_todo (index )
60- print ( " Task completed." )
62+ typer . secho ( "✅ Task completed.", fg = typer . colors . GREEN )
6163 except Exception as error :
62- print (f"Task error: { error } " )
64+ typer . secho (f"❌ Task error: { error } " , fg = typer . colors . RED )
6365
6466
6567def remove_task (args : str ) -> None :
6668 """Remove a task by its numeric position."""
6769 if not args .strip () or not args .strip ().isdigit ():
68- print ( " Usage: task remove <task-number>" )
70+ typer . secho ( "⚠️ Usage: task remove <task-number>", fg = typer . colors . YELLOW )
6971 return
7072
7173 index = int (args .strip ()) - 1
7274 try :
7375 delete_todo (index )
74- print ( " Task removed." )
76+ typer . secho ( "✅ Task removed.", fg = typer . colors . GREEN )
7577 except Exception as error :
76- print (f"Task error: { error } " )
78+ typer . secho (f"❌ Task error: { error } " , fg = typer . colors . RED )
7779
7880
7981def update_task (args : str ) -> None :
8082 """Update an existing task's text and/or category."""
8183 parts = args .split (maxsplit = 2 )
8284 if len (parts ) < 2 or not parts [0 ].isdigit ():
83- print ( ' Usage: task update <task-number> "<task>" ["<category>"]' )
85+ typer . secho ( '⚠️ Usage: task update <task-number> "<task>" ["<category>"]', fg = typer . colors . YELLOW )
8486 return
8587
8688 index = int (parts [0 ]) - 1
@@ -89,9 +91,9 @@ def update_task(args: str) -> None:
8991
9092 try :
9193 update_todo (index , task_text , category )
92- print ( " Task updated." )
94+ typer . secho ( "✅ Task updated.", fg = typer . colors . GREEN )
9395 except Exception as error :
94- print (f"Task error: { error } " )
96+ typer . secho (f"❌ Task error: { error } " , fg = typer . colors . RED )
9597
9698
9799def list_tasks (_ : str ) -> None :
@@ -112,7 +114,7 @@ def run_task_command(args: str) -> None:
112114 }
113115
114116 if not args .strip ():
115- print ( " Usage: task <add|show|done|list|remove|update> [options]" )
117+ typer . secho ( "⚠️ Usage: task <add|show|done|list|remove|update> [options]", fg = typer . colors . YELLOW )
116118 return
117119
118120 parts = args .split (maxsplit = 1 )
@@ -124,6 +126,6 @@ def run_task_command(args: str) -> None:
124126 try :
125127 handler (subargs )
126128 except Exception as error :
127- print (f"Task error: { error } " )
129+ typer . secho (f"❌ Task error: { error } " , fg = typer . colors . RED )
128130 else :
129- print (f"Unknown task subcommand: { subcmd } " )
131+ typer . secho (f"❓ Unknown task subcommand: { subcmd } " , fg = typer . colors . YELLOW )
0 commit comments