aboutsummaryrefslogtreecommitdiff
path: root/cmd/moncheck/main.go
diff options
context:
space:
mode:
authorGibheer <gibheer+git@zero-knowledge.org>2018-12-10 09:34:00 +0100
committerGibheer <gibheer+git@zero-knowledge.org>2018-12-10 09:34:00 +0100
commit40e744cd6a372a1c44f5a827f253f163b046e9c3 (patch)
tree5be33377d7ca801ab150f219c3e1fbda3f339b05 /cmd/moncheck/main.go
parent3400167c98c78a2cf104cd4be3907450e01c56ff (diff)
moncheck - add PATH environment
This adds the path environment configuration to control which programs to call.
Diffstat (limited to 'cmd/moncheck/main.go')
-rw-r--r--cmd/moncheck/main.go15
1 files changed, 12 insertions, 3 deletions
diff --git a/cmd/moncheck/main.go b/cmd/moncheck/main.go
index cc05594..60051e2 100644
--- a/cmd/moncheck/main.go
+++ b/cmd/moncheck/main.go
@@ -10,6 +10,7 @@ import (
"fmt"
"io/ioutil"
"log"
+ "os"
"os/exec"
"strconv"
"strings"
@@ -26,9 +27,10 @@ var (
type (
Config struct {
- DB string `json:"db"`
- Timeout string `json:"timeout"`
- Wait string `json:"wait"`
+ DB string `json:"db"`
+ Timeout string `json:"timeout"`
+ Wait string `json:"wait"`
+ Path []string `json:"path"`
}
States []int
@@ -46,6 +48,10 @@ func main() {
log.Fatalf("could not parse config: %s", err)
}
+ if err := os.Setenv("PATH", strings.Join(config.Path, ":")); err != nil {
+ log.Fatalf("could not set PATH: %s", err)
+ }
+
waitDuration, err := time.ParseDuration(config.Wait)
if err != nil {
log.Fatalf("could not parse wait duration: %s", err)
@@ -119,6 +125,9 @@ func check(thread int, db *sql.DB, waitDuration, timeout time.Duration) {
// TODO all this casting should be done better
states.Add(99)
fmt.Fprintf(output, "check took longer than %s", timeout)
+ } else if err != nil && cmd.ProcessState == nil {
+ log.Printf("[%d] error running check: %s", id, err)
+ states.Add(1)
} else if err != nil {
cancel()
status, ok := cmd.ProcessState.Sys().(syscall.WaitStatus)