Skip to content

Commit b017f65

Browse files
committed
Use github.com/coreos/go-systemd/unit for creating unit
1 parent c7016c5 commit b017f65

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed

service.go

Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,39 @@ package main
33
import (
44
"bytes"
55
"fmt"
6-
"html/template"
6+
"io"
77
"log"
88
"os"
99
"os/exec"
1010
"strings"
11+
12+
"github.com/coreos/go-systemd/unit"
1113
)
1214

1315
func installService() {
14-
serviceUnit := `[Unit]
15-
Description=Local Docker Development DNS
16-
BindTo=docker.service
17-
After=docker.service
18-
19-
[Service]
20-
Type=notify
21-
Environment="DOCKER_API_VERSION={{ .Version }}"
22-
ExecStart={{ .Executable }} service
23-
SuccessExitStatus=15
24-
Restart=on-failure
25-
26-
[Install]
27-
WantedBy=docker.service
28-
`
29-
3016
version := serverVersion()
3117

3218
executable, err := os.Executable()
3319
if err != nil {
3420
panic(fmt.Errorf("could not find path of executable: %w", err))
3521
}
3622

37-
data := struct {
38-
Version string
39-
Executable string
40-
}{
41-
Version: version,
42-
Executable: executable,
23+
serviceUnit := unit.Serialize([]*unit.UnitOption{
24+
unit.NewUnitOption("Unit", "Description", "Local Docker Development DNS"),
25+
unit.NewUnitOption("Unit", "BindTo", "docker.service"),
26+
unit.NewUnitOption("Unit", "After", "docker.service"),
27+
unit.NewUnitOption("Service", "Type", "notify"),
28+
unit.NewUnitOption("Service", "Environment", "DOCKER_API_VERSION="+version),
29+
unit.NewUnitOption("Service", "ExecStart", executable+" service"),
30+
unit.NewUnitOption("Service", "SuccessExitStatus", "15"),
31+
unit.NewUnitOption("Service", "Restart", "on-failure"),
32+
unit.NewUnitOption("Install", "WantedBy", "docker.service"),
33+
})
34+
35+
_, err = io.Copy(os.Stdout, serviceUnit)
36+
if err != nil {
37+
panic(fmt.Errorf("could not output service unit: %w", err))
4338
}
44-
45-
tmpl, _ := template.New("test").Parse(serviceUnit)
46-
_ = tmpl.Execute(os.Stdout, data)
4739
}
4840

4941
func serverVersion() string {

0 commit comments

Comments
 (0)