feat: reastructure and create commands
All checks were successful
Go / build (push) Successful in 57s

This commit is contained in:
2025-09-16 21:11:14 +02:00
parent 8180b38225
commit 7d160d5f59
15 changed files with 388 additions and 5 deletions

44
internal/ask/number.go Normal file
View File

@@ -0,0 +1,44 @@
package ask
import (
"fmt"
"strconv"
)
func Int(query string, min, max int) int {
return raw(query, '\n', func(s string) (v int, msg string) {
v, err := strconv.Atoi(s)
if err != nil {
msg = "please enter a number"
return v, msg
}
if min >= 0 && v < min {
msg = fmt.Sprintf("your number must be bigger than %d", min)
return v, msg
}
if max >= 0 && v > max {
msg = fmt.Sprintf("your number must be smaller than %d", max)
return v, msg
}
return v, msg
})
}
func Float64(query string, min, max float64) float64 {
return raw(query, '\n', func(s string) (v float64, msg string) {
v, err := strconv.ParseFloat(s, 64)
if err != nil {
msg = "please enter a number"
return v, msg
}
if min >= 0 && v < min {
msg = fmt.Sprintf("your number must be bigger than %g", min)
return v, msg
}
if max >= 0 && v > max {
msg = fmt.Sprintf("your number must be smaller than %g", max)
return v, msg
}
return v, msg
})
}