Created
December 17, 2024 05:26
-
-
Save GeekyGeeky/3ef392ba70ce7813e396e6b05c2973ea to your computer and use it in GitHub Desktop.
Simple Task Manager CLI App in Golang
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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