tolo/main.go
selamanapps 40a80a6c9b Initial release: Tolo v1.0.0
- Add core CLI functionality (save, run, update, delete, list, show, search)
- Implement JSON-based storage in ~/.tolo/tolo.db.json
- Add beautiful terminal UI with colors and icons
- Support command shortcuts (s, r, u, d, ls, l, sh, se, h, v)
- Add Bash and Zsh shell completion
- Include comprehensive documentation (README, CONTRIBUTING, SECURITY)
- Set up CI/CD workflows with GitHub Actions
- Add installation script and Makefile for build automation
- MIT License

Made with ❤️ at Zemenawi Lab
2026-03-27 06:44:03 +03:00

75 lines
1.6 KiB
Go

package main
import (
"fmt"
"os"
"strings"
"tolo/cmd"
)
var version = "dev"
func main() {
if len(os.Args) < 2 {
fmt.Println(cmd.Help())
os.Exit(1)
}
command := os.Args[1]
args := strings.Join(os.Args[2:], " ")
switch command {
case "save", "s":
if err := cmd.Save(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "run", "r":
if err := cmd.Run(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "update", "u":
if err := cmd.Update(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "delete", "del", "rm", "d":
if err := cmd.Delete(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "list", "ls", "l":
if err := cmd.List(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "show", "sh", "info":
if err := cmd.Show(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "search", "se", "find":
if err := cmd.Search(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
case "help", "h":
fmt.Println(cmd.Help())
case "version", "v":
fmt.Println(cmd.Version(version))
case "--bash-completion":
fmt.Println(cmd.GenerateBashCompletion())
case "--zsh-completion":
fmt.Println(cmd.GenerateZshCompletion())
case "--completion":
if err := cmd.Completion(args); err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
default:
fmt.Fprintf(os.Stderr, "Unknown command: %s\n\n", command)
fmt.Println(cmd.Help())
os.Exit(1)
}
}