summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené 'Necoro' Neumann <necoro@necoro.eu>2022-01-23 23:41:54 +0100
committerRené 'Necoro' Neumann <necoro@necoro.eu>2022-01-23 23:41:54 +0100
commitcd8e12750c96264232dcd04886130479e9010e83 (patch)
treea268ebe64d8c63e31f2ed32bd4810ca50e65cba2
parentd3c998ed96adb070e5dfe38c5fac812d503c890a (diff)
downloadengarde-importer-cd8e12750c96264232dcd04886130479e9010e83.tar.gz
engarde-importer-cd8e12750c96264232dcd04886130479e9010e83.tar.bz2
engarde-importer-cd8e12750c96264232dcd04886130479e9010e83.zip
Commandline handling
-rw-r--r--main.go51
1 files 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 <input csv> <output dir> <name> <M/F> <S/V> <D/F/S> <dd.mm.yyyy>", 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()
}