From b97e4b19ec9c415cd5f3d204e23e5fde5180db26 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 25 Nov 2025 22:32:54 +0200 Subject: Initial commit: perc v0.0.0 - percentage calculator Amp-Thread-ID: https://ampcode.com/threads/T-e4f4a959-8cc6-4ac0-b6fb-2779867e8b2a Co-authored-by: Amp --- cmd/perc/main.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 cmd/perc/main.go (limited to 'cmd') diff --git a/cmd/perc/main.go b/cmd/perc/main.go new file mode 100644 index 0000000..a5764b5 --- /dev/null +++ b/cmd/perc/main.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + "os" + "strings" + + "codeberg.org/snonux/perc/internal" + "codeberg.org/snonux/perc/internal/calculator" +) + +func main() { + output, err := runCommand(os.Args) + if err != nil { + fmt.Println("Error:", err) + os.Exit(1) + } + fmt.Println(output) +} + +func runCommand(args []string) (string, error) { + if len(args) < 2 { + printUsage() + return "", fmt.Errorf("no input provided") + } + + if args[1] == "version" { + return internal.Version, nil + } + + input := strings.Join(args[1:], " ") + result, err := calculator.Parse(input) + if err != nil { + return "", err + } + + return result, nil +} + +func printUsage() { + fmt.Println("Usage: perc ") + fmt.Println(" perc version") + fmt.Println("\nExamples:") + fmt.Println(" perc 20% of 150") + fmt.Println(" perc what is 20% of 150") + fmt.Println(" perc 30 is what % of 150") + fmt.Println(" perc 30 is 20% of what") +} -- cgit v1.2.3