From c9b6fd62a05d3bcdd543f39eac0a95e08cc6f8c8 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Thu, 27 Jun 2019 03:46:02 -0600 Subject: [PATCH] WIP tested linux system installer --- .../dist/etc/systemd/system/_name_.service.tmpl | 11 +++++------ cmd/watchdog/installer/install_linux.go | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/cmd/watchdog/installer/dist/etc/systemd/system/_name_.service.tmpl b/cmd/watchdog/installer/dist/etc/systemd/system/_name_.service.tmpl index 2af4774..e7cd86e 100644 --- a/cmd/watchdog/installer/dist/etc/systemd/system/_name_.service.tmpl +++ b/cmd/watchdog/installer/dist/etc/systemd/system/_name_.service.tmpl @@ -1,16 +1,15 @@ # Pre-req # sudo mkdir -p {{ .Local }}/opt/{{ .Name }}/ {{ .Local }}/var/log/{{ .Name }} {{ if not .Local -}} -{{ if .User -}} +{{- if and .User ( ne "root" .User ) -}} # sudo adduser {{ .User }} --home /opt/{{ .Name }} # sudo chown -R {{ .User }}:{{ .Group }} /opt/{{ .Name }}/ /var/log/{{ .Name }} {{- end }} -{{- end }} - +{{ end -}} # Post-install -# sudo systemctl {{ if .Local -}} --user {{- end }} daemon-reload -# sudo systemctl {{ if .Local -}} --user {{- end }} restart {{ .Name }}.service -# sudo journalctl {{ if .Local -}} --user {{- end }} -xefu {{ .Name }} +# sudo systemctl {{ if .Local -}} --user {{ end -}} daemon-reload +# sudo systemctl {{ if .Local -}} --user {{ end -}} restart {{ .Name }}.service +# sudo journalctl {{ if .Local -}} --user {{ end -}} -xefu {{ .Name }} [Unit] Description={{ .Title }} - {{ .Desc }} diff --git a/cmd/watchdog/installer/install_linux.go b/cmd/watchdog/installer/install_linux.go index 869dbda..14bd47c 100644 --- a/cmd/watchdog/installer/install_linux.go +++ b/cmd/watchdog/installer/install_linux.go @@ -32,7 +32,7 @@ func install(c *Config) error { // https://wiki.archlinux.org/index.php/Systemd/User serviceDir = filepath.Join(c.home, ".local/share/systemd/user") } - err = os.MkdirAll(filepath.Dir(serviceDir), 0750) + err := os.MkdirAll(filepath.Dir(serviceDir), 0750) if nil != err { return err } @@ -59,7 +59,18 @@ func install(c *Config) error { if err := ioutil.WriteFile(servicePath, rw.Bytes(), 0644); err != nil { return fmt.Errorf("ioutil.WriteFile error: %v", err) } - fmt.Printf("Wrote %q\n", servicePath) + // TODO template this as well? + userspace := "" + sudo := "sudo " + if !c.System { + userspace = "--user " + sudo = "" + } + fmt.Printf("System service installed as '%s'.\n", servicePath) + fmt.Printf("Run the following to start '%s':\n", c.Name) + fmt.Printf("\t" + sudo + "systemctl " + userspace + "daemon-reload\n") + fmt.Printf("\t"+sudo+"systemctl "+userspace+"restart %s.service\n", c.Name) + fmt.Printf("\t"+sudo+"journalctl "+userspace+"-xefu %s\n", c.Name) return nil }