diff --git a/models.go b/models.go index 958a8f4..72ace1c 100644 --- a/models.go +++ b/models.go @@ -7,6 +7,7 @@ type Source struct { ConsulToken string `json:"consul_token"` VaultToken string `json:"vault_token"` Templating bool `json:"templating"` + Restart bool `json:"restart"` } type JobVersion struct { diff --git a/out/main.go b/out/main.go index f4559d0..5e2b555 100644 --- a/out/main.go +++ b/out/main.go @@ -68,6 +68,26 @@ func main() { common.Check(err, "Error writing output file") } + if ( config.Source.Restart != false ) { + cmd := exec.Command( + "nomad", + "job", + "stop", + "-purge", + "-address="+config.Source.URL, + "-token="+config.Source.Token, + config.Source.Name, + ) + var out bytes.Buffer + cmd.Stdout = &out + cmd.Stderr = &out + err = cmd.Run() + if err != nil { + fmt.Fprintf(os.Stderr, "Error executing nomad: %s\n", err) + fmt.Fprint(os.Stderr, out.String()) + os.Exit(1) + } + } cmd := exec.Command( "nomad", "job",