forked from vulcand/vulcand
/
templates.go
72 lines (60 loc) · 1.23 KB
/
templates.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package main
const mainTemplate = `package main
import (
"fmt"
"github.com/mailgun/vulcand/service"
"{{.PackagePath}}/registry"
"os"
)
func main() {
r, err := registry.GetRegistry()
if err != nil {
fmt.Printf("Service exited with error: %s\n", err)
os.Exit(255)
}
if err := service.Run(r); err != nil {
fmt.Printf("Service exited with error: %s\n", err)
os.Exit(255)
} else {
fmt.Println("Service exited gracefully")
}
}
`
const registryTemplate = `package registry
import (
"github.com/mailgun/vulcand/plugin"
{{range .Packages}}
"{{.}}"
{{end}}
)
func GetRegistry() (*plugin.Registry, error) {
r := plugin.NewRegistry()
{{range .Packages}}
if err := r.AddSpec({{.Name}}.GetSpec()); err != nil {
return nil, err
}
{{end}}
return r, nil
}
`
const vulcanctlTemplate = `package main
import (
"github.com/mailgun/log"
"github.com/mailgun/vulcand/vulcanctl/command"
"{{.PackagePath}}/registry"
"os"
)
var vulcanUrl string
func main() {
log.Init([]*log.LogConfig{&log.LogConfig{Name: "console"}})
r, err := registry.GetRegistry()
if err != nil {
log.Errorf("Error: %s\n", err)
return
}
cmd := command.NewCommand(r)
if err := cmd.Run(os.Args); err != nil {
log.Errorf("Error: %s\n", err)
}
}
`