Skip to content

Instantly share code, notes, and snippets.

@GeekyGeeky
Created December 17, 2024 05:26
Show Gist options
  • Save GeekyGeeky/3ef392ba70ce7813e396e6b05c2973ea to your computer and use it in GitHub Desktop.
Save GeekyGeeky/3ef392ba70ce7813e396e6b05c2973ea to your computer and use it in GitHub Desktop.
Simple Task Manager CLI App in Golang
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
tasks := []string{}
scanner := bufio.NewScanner(os.Stdin)
defer fmt.Println("Exiting the Task Manager. Goodbye!")
for {
fmt.Println("\nTask Manager CLI")
fmt.Println("=================")
fmt.Println("1. Add Task")
fmt.Println("2. View Tasks")
fmt.Println("3. Delete Task")
fmt.Println("4. Exit")
fmt.Print("Enter your choice (1-4): ")
var choice int
_, err := fmt.Scanf("%d\n", &choice)
if err != nil {
fmt.Println("Invalid input. Please enter a number between 1 and 4.")
continue
}
switch choice {
case 1:
fmt.Print("Enter a new task: ")
if scanner.Scan() {
task := scanner.Text()
if task == "" {
fmt.Println("Task cannot be empty.")
} else {
tasks = append(tasks, task)
fmt.Println("Task added successfully!")
}
}
case 2:
if len(tasks) == 0 {
fmt.Println("No tasks available.")
} else {
fmt.Println("\nYour Tasks:")
for i, task := range tasks {
fmt.Printf("%d. %s\n", i+1, task)
}
}
case 3:
if len(tasks) == 0 {
fmt.Println("No tasks to delete.")
} else {
fmt.Println("Enter the task number to delete:")
for i, task := range tasks {
fmt.Printf("%d. %s\n", i+1, task)
}
var taskNumber int
_, err := fmt.Scanf("%d\n", &taskNumber)
if err != nil || taskNumber < 1 || taskNumber > len(tasks) {
fmt.Println("Invalid task number.")
} else {
tasks = append(tasks[:taskNumber-1], tasks[taskNumber:]...)
fmt.Println("Task deleted successfully!")
}
}
case 4:
return
default:
fmt.Println("Invalid choice. Please select a number between 1 and 4.")
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment