From 5442a432117c124257dacc1d0b9926a65e85cfc4 Mon Sep 17 00:00:00 2001 From: RPJosh Date: Tue, 10 Oct 2023 09:51:45 +0200 Subject: [PATCH] Add special return code for 'already booked' --- cmd/infoniqa/main.go | 26 +++++++++++++++++++++++++- go.mod | 4 ++-- go.sum | 6 ++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/cmd/infoniqa/main.go b/cmd/infoniqa/main.go index 20624c1..bcc8568 100644 --- a/cmd/infoniqa/main.go +++ b/cmd/infoniqa/main.go @@ -41,10 +41,22 @@ func main() { switch strings.ToLower(os.Args[1]) { case "kommen": if err := inf.Kommen(); err != nil { + // Special return code for "already booked" + if strings.HasPrefix(err.Error(), "last booking was already") { + logger.Error("Failed to book 'kommen': %s", err) + os.Exit(2) + } + logger.Fatal("Failed to book 'kommen': %s", err) } case "gehen": if err := inf.Gehen(); err != nil { + // Special return code for "already booked" + if strings.HasPrefix(err.Error(), "last booking was already") { + logger.Error("Failed to book 'gehen': %s", err) + os.Exit(2) + } + logger.Fatal("Failed to book 'gehen': %s", err) } case "abwesend": @@ -60,11 +72,23 @@ func main() { // Buche kommen und dann gehen if err := inf.Gehen(); err != nil { - logger.Fatal("Failed to book 'kommen': %s", err) + // Special return code for "already booked" + if strings.HasPrefix(err.Error(), "last booking was already") { + logger.Error("Failed to book 'gehen': %s", err) + os.Exit(2) + } + + logger.Fatal("Failed to book 'gehen': %s", err) } logger.Info("Waiting %d minutes....", minutes) time.Sleep(time.Duration(minutes * int(time.Minute))) if err := inf.Kommen(); err != nil { + // Special return code for "already booked" + if strings.HasPrefix(err.Error(), "last booking was already") { + logger.Error("Failed to book 'kommen': %s", err) + os.Exit(2) + } + logger.Fatal("Failed to book 'kommen': %s", err) } diff --git a/go.mod b/go.mod index bb53423..780307f 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module gitea.hama.de/LFS/infoniqa-scripts go 1.19 require ( - git.rpjosh.de/RPJosh/go-logger v1.3.0 // indirect - golang.org/x/sys v0.12.0 // indirect + git.rpjosh.de/RPJosh/go-logger v1.3.2 // indirect + golang.org/x/sys v0.13.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index ce1a238..bf1ffb7 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,14 @@ git.rpjosh.de/RPJosh/go-logger v1.2.1 h1:yzx9+mFIC+2TXI93EGeuRvow++yte8bpQ0GtDvL git.rpjosh.de/RPJosh/go-logger v1.2.1/go.mod h1:iD3KaRyOIkYMj7E+xFMn5uDVCzW1lSJQopz1Fl1+BSM= git.rpjosh.de/RPJosh/go-logger v1.3.0 h1:oKjOEMC5RSge3qhyoXaegkvotNYOug67CADDnBKDXQU= git.rpjosh.de/RPJosh/go-logger v1.3.0/go.mod h1:iD3KaRyOIkYMj7E+xFMn5uDVCzW1lSJQopz1Fl1+BSM= +git.rpjosh.de/RPJosh/go-logger v1.3.1 h1:O8pxDWnrJ528pUYyHxsKHfdkalVBHw8AKWVxB2CDGjQ= +git.rpjosh.de/RPJosh/go-logger v1.3.1/go.mod h1:iD3KaRyOIkYMj7E+xFMn5uDVCzW1lSJQopz1Fl1+BSM= +git.rpjosh.de/RPJosh/go-logger v1.3.2 h1:y8qFEBYeJzLLi6H7CpHHGb2pB0IyfHSG6m6o8TxL1uo= +git.rpjosh.de/RPJosh/go-logger v1.3.2/go.mod h1:iD3KaRyOIkYMj7E+xFMn5uDVCzW1lSJQopz1Fl1+BSM= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=