From cd8e12750c96264232dcd04886130479e9010e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sun, 23 Jan 2022 23:41:54 +0100 Subject: Commandline handling --- main.go | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index e2ef1d7..c6799f7 100644 --- a/main.go +++ b/main.go @@ -108,21 +108,56 @@ func parseOphardtInput(fileName string) ([]participant, error) { return participants, nil } +func usage() string { + return fmt.Sprintf("Usage: %s ", os.Args[0]) +} + +type EngardeConfig struct { + inputFile string + outputDir string + name string + gender Gender + ageGroup AgeGroup + weapon Weapon + date time.Time +} + +func parseArgs() (config EngardeConfig, err error) { + config.inputFile = os.Args[1] + config.outputDir = os.Args[2] + config.name = os.Args[3] + + if config.gender, err = GenderFromString(os.Args[4]); err != nil { + return EngardeConfig{}, err + } + if config.ageGroup, err = AgeGroupFromString(os.Args[5]); err != nil { + return EngardeConfig{}, err + } + if config.weapon, err = WeaponFromString(os.Args[6]); err != nil { + return EngardeConfig{}, err + } + + if config.date, err = time.Parse("02.01.2006", os.Args[7]); err != nil { + return EngardeConfig{}, err + } + + return config, nil +} + func run() error { - if len(os.Args) <= 1 { - return errors.New("need filename to start with") + if len(os.Args) <= 7 { + return errors.New(usage()) } - fileName := os.Args[1] - p, err := parseOphardtInput(fileName) + cfg, err := parseArgs() if err != nil { return err } - x, _ := p[0].enguarde() - y, _ := p[1].enguarde() - - fmt.Print(x, y) + _, err = parseOphardtInput(cfg.inputFile) + if err != nil { + return err + } return writeVerbatim() } -- cgit v1.2.3