cli/cli_test.go
2025-12-11 07:57:48 +01:00

82 lines
2.4 KiB
Go

package cli
import (
"fmt"
"strings"
"testing"
)
type GlobaData struct {
config string
log []string
printOcr bool
saveClips bool
trace bool
page []int
sources []string
dest string
facoltativo string
}
func (gd *GlobaData) String() string {
var sb strings.Builder
fmt.Fprintf(&sb, "Options:\n")
fmt.Fprintf(&sb, " Config.....: %q\n", gd.config)
fmt.Fprintf(&sb, " Log........: %v\n", gd.log)
fmt.Fprintf(&sb, " Print-Ocr..: %v\n", gd.printOcr)
fmt.Fprintf(&sb, " Save-Clips.: %v\n", gd.saveClips)
fmt.Fprintf(&sb, " Page.......: %v\n", gd.page)
fmt.Fprintf(&sb, " Trace......: %v\n", gd.trace)
fmt.Fprintf(&sb, "Argumentes:\n")
fmt.Fprintf(&sb, " Sources....: %s\n", strings.Join(gd.sources, ", "))
fmt.Fprintf(&sb, " Destination: %s\n", gd.dest)
fmt.Fprintf(&sb, " Facoltativo: %s\n", gd.facoltativo)
return sb.String()
}
func TestUsage(t *testing.T) {
var cli CliParser
var version = `$VER:mini-ddt-ocr,1.0.1,2025-11-23,celestino.amoroso@gmail.com:$`
var gd GlobaData
args := []string{
"mini-ddt-ocr",
"--log", "all",
"--config", "devel-config.yaml",
// "--var", "deploy_env=devel",
"--print-ocr",
"--pages", "17,18",
"../../dev-stuff/ocis-upload.log", "ciccio", "bello", "pippo",
}
cli.Init(args, version)
if err := gd.addOptions(&cli); err != nil {
t.Error(err)
return
}
usage := cli.Usage()
fmt.Println(usage)
if err := cli.Parse(); err == nil {
fmt.Println(&gd)
} else {
t.Error(err)
}
}
func (gd *GlobaData) addOptions(cli *CliParser) (err error) {
defer func() {
if r := recover(); r != nil {
err = r.(error)
}
}()
cli.AddBoolOpt("print-ocr", "o", &gd.printOcr, "Stampa l'output del programma OCR")
cli.AddBoolOpt("save-clip", "s", &gd.saveClips, "Registra le immagini delle aree ritagliata", "save-clips")
cli.AddBoolOpt("trace", "t", &gd.trace, "Attiva la modalità di tracciamento delle operazioni")
cli.AddIntArrayOpt("page", "p", &gd.page, gd.page, "Elabora la pagina specificata")
cli.AddStringOpt("config", "c", &gd.config, gd.config, "Specifica un percorso alternativo per il file di configurazione")
cli.AddStringArrayOpt("log", "l", &gd.log, gd.log, "Maschera di livelli di log")
cli.AddStringArrayArg("sorgenti", true, &gd.sources, "file da elaborare")
cli.AddStringArg("dest", true, &gd.dest, "file di outout")
cli.AddStringArg("facoltativo", false, &gd.facoltativo, "file facoltativo")
return
}