From 8527c632f8e0055d6d67b4420fd9a3110db9a35e Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Tue, 2 Jul 2019 00:25:16 -0600 Subject: [PATCH] working great on MacOS --- .../Library/LaunchDaemons/_rdns_.plist.tmpl | 4 ++-- installer/install.go | 4 ++-- installer/install_darwin.go | 14 ++++++++++---- installer/install_linux.go | 8 ++++---- installer/static/ab0x.go | 6 +++--- serviceman.go | 17 +++++++++++++---- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/installer/dist/Library/LaunchDaemons/_rdns_.plist.tmpl b/installer/dist/Library/LaunchDaemons/_rdns_.plist.tmpl index cf16b8d..363bca7 100644 --- a/installer/dist/Library/LaunchDaemons/_rdns_.plist.tmpl +++ b/installer/dist/Library/LaunchDaemons/_rdns_.plist.tmpl @@ -64,8 +64,8 @@ {{ end -}} StandardErrorPath - {{ .LogDir }}/{{ .Name }}.log + {{ .Logdir }}/{{ .Name }}.log StandardOutPath - {{ .LogDir }}/{{ .Name }}.log + {{ .Logdir }}/{{ .Name }}.log diff --git a/installer/install.go b/installer/install.go index 6d5f0b0..1e47eff 100644 --- a/installer/install.go +++ b/installer/install.go @@ -65,7 +65,7 @@ type Config struct { Group string `json:"group"` home string `json:"-"` Local string `json:"-"` - LogDir string `json:"-"` + Logdir string `json:"-"` System bool `json:"system"` Restart bool `json:"restart"` Production bool `json:"production"` @@ -96,7 +96,7 @@ func Install(c *Config) error { return err } - err = os.MkdirAll(c.LogDir, 0750) + err = os.MkdirAll(c.Logdir, 0755) if nil != err { return err } diff --git a/installer/install_darwin.go b/installer/install_darwin.go index 386e963..d595d4b 100644 --- a/installer/install_darwin.go +++ b/installer/install_darwin.go @@ -25,7 +25,7 @@ func install(c *Config) error { } // Check paths first - err := os.MkdirAll(filepath.Dir(plistDir), 0750) + err := os.MkdirAll(filepath.Dir(plistDir), 0755) if nil != err { return err } @@ -52,13 +52,19 @@ func install(c *Config) error { plistName := c.ReverseDNS + ".plist" plistPath := filepath.Join(plistDir, plistName) if err := ioutil.WriteFile(plistPath, rw.Bytes(), 0644); err != nil { - fmt.Println("Use 'sudo' to install as a privileged system service.") - fmt.Println("Use '--userspace' to install as an user service.") + return fmt.Errorf("ioutil.WriteFile error: %v", err) } fmt.Printf("Installed. To start '%s' run the following:\n", c.Name) // TODO template config file - fmt.Printf("\tlaunchctl load -w %s\n", strings.Replace(plistPath, c.home, "~", 1)) + if "" != c.home { + plistPath = strings.Replace(plistPath, c.home, "~", 1) + } + sudo := "" + if c.System { + sudo = "sudo " + } + fmt.Printf("\t%slaunchctl load -w %s\n", sudo, plistPath) return nil } diff --git a/installer/install_linux.go b/installer/install_linux.go index 4f06c43..3208796 100644 --- a/installer/install_linux.go +++ b/installer/install_linux.go @@ -31,10 +31,10 @@ func install(c *Config) error { // * ~/.config/systemd/user/watchdog.service // https://wiki.archlinux.org/index.php/Systemd/User serviceDir = filepath.Join(c.home, ".local/share/systemd/user") - } - err := os.MkdirAll(filepath.Dir(serviceDir), 0750) - if nil != err { - return err + err := os.MkdirAll(filepath.Dir(serviceDir), 0755) + if nil != err { + return err + } } // Create service file from template diff --git a/installer/static/ab0x.go b/installer/static/ab0x.go index 27009b2..b2497db 100644 --- a/installer/static/ab0x.go +++ b/installer/static/ab0x.go @@ -1,5 +1,5 @@ -// Code generated by fileb0x at "2019-07-02 00:00:44.483683 -0600 MDT m=+0.004513036" from config file "b0x.toml" DO NOT EDIT. -// modification hash(9e1b78f0c3896774c01132e8ab006403.acdb557394f98d3c09c0bb4d4b9142f8) +// Code generated by fileb0x at "2019-07-02 00:24:56.633505 -0600 MDT m=+0.003518020" from config file "b0x.toml" DO NOT EDIT. +// modification hash(7ce890c82a9c0a430fe55cf7f579e8b4.acdb557394f98d3c09c0bb4d4b9142f8) package static @@ -36,7 +36,7 @@ type HTTPFS struct { } // FileDistLibraryLaunchDaemonsRdnsPlistTmpl is "dist/Library/LaunchDaemons/_rdns_.plist.tmpl" -var FileDistLibraryLaunchDaemonsRdnsPlistTmpl = []byte("\x3c\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x70\x6c\x69\x73\x74\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x41\x70\x70\x6c\x65\x2f\x2f\x44\x54\x44\x20\x50\x4c\x49\x53\x54\x20\x31\x2e\x30\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x61\x70\x70\x6c\x65\x2e\x63\x6f\x6d\x2f\x44\x54\x44\x73\x2f\x50\x72\x6f\x70\x65\x72\x74\x79\x4c\x69\x73\x74\x2d\x31\x2e\x30\x2e\x64\x74\x64\x22\x3e\x0a\x3c\x70\x6c\x69\x73\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x30\x22\x3e\x0a\x3c\x64\x69\x63\x74\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x4c\x61\x62\x65\x6c\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x52\x65\x76\x65\x72\x73\x65\x44\x4e\x53\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x50\x72\x6f\x67\x72\x61\x6d\x41\x72\x67\x75\x6d\x65\x6e\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x61\x72\x72\x61\x79\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x69\x66\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x45\x78\x65\x63\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x72\x61\x6e\x67\x65\x20\x24\x61\x72\x67\x20\x3a\x3d\x20\x2e\x41\x72\x67\x76\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x24\x61\x72\x67\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x3c\x2f\x61\x72\x72\x61\x79\x3e\x0a\x09\x7b\x7b\x2d\x20\x69\x66\x20\x2e\x45\x6e\x76\x73\x20\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x45\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x72\x61\x6e\x67\x65\x20\x24\x6b\x65\x79\x2c\x20\x24\x76\x61\x6c\x75\x65\x20\x3a\x3d\x20\x2e\x45\x6e\x76\x73\x20\x7d\x7d\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x7b\x7b\x20\x24\x6b\x65\x79\x20\x7d\x7d\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x24\x76\x61\x6c\x75\x65\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x0a\x09\x7b\x7b\x69\x66\x20\x2e\x55\x73\x65\x72\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x55\x73\x65\x72\x4e\x61\x6d\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x55\x73\x65\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x47\x72\x6f\x75\x70\x4e\x61\x6d\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x47\x72\x6f\x75\x70\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x49\x6e\x69\x74\x47\x72\x6f\x75\x70\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x0a\x09\x7b\x7b\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x52\x75\x6e\x41\x74\x4c\x6f\x61\x64\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x52\x65\x73\x74\x61\x72\x74\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x3c\x21\x2d\x2d\x64\x69\x63\x74\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x43\x72\x61\x73\x68\x65\x64\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x4e\x65\x74\x77\x6f\x72\x6b\x53\x74\x61\x74\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x53\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x45\x78\x69\x74\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x66\x61\x6c\x73\x65\x2f\x3e\x0a\x09\x3c\x2f\x64\x69\x63\x74\x2d\x2d\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x50\x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x6f\x66\x74\x52\x65\x73\x6f\x75\x72\x63\x65\x4c\x69\x6d\x69\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x4e\x75\x6d\x62\x65\x72\x4f\x66\x46\x69\x6c\x65\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x69\x6e\x74\x65\x67\x65\x72\x3e\x38\x31\x39\x32\x3c\x2f\x69\x6e\x74\x65\x67\x65\x72\x3e\x0a\x09\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x48\x61\x72\x64\x52\x65\x73\x6f\x75\x72\x63\x65\x4c\x69\x6d\x69\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x2f\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x57\x6f\x72\x6b\x69\x6e\x67\x44\x69\x72\x65\x63\x74\x6f\x72\x79\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x74\x61\x6e\x64\x61\x72\x64\x45\x72\x72\x6f\x72\x50\x61\x74\x68\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x4c\x6f\x67\x44\x69\x72\x20\x7d\x7d\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2e\x6c\x6f\x67\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x74\x61\x6e\x64\x61\x72\x64\x4f\x75\x74\x50\x61\x74\x68\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x4c\x6f\x67\x44\x69\x72\x20\x7d\x7d\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2e\x6c\x6f\x67\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x3c\x2f\x70\x6c\x69\x73\x74\x3e\x0a") +var FileDistLibraryLaunchDaemonsRdnsPlistTmpl = []byte("\x3c\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x30\x22\x20\x65\x6e\x63\x6f\x64\x69\x6e\x67\x3d\x22\x55\x54\x46\x2d\x38\x22\x3f\x3e\x0a\x3c\x21\x44\x4f\x43\x54\x59\x50\x45\x20\x70\x6c\x69\x73\x74\x20\x50\x55\x42\x4c\x49\x43\x20\x22\x2d\x2f\x2f\x41\x70\x70\x6c\x65\x2f\x2f\x44\x54\x44\x20\x50\x4c\x49\x53\x54\x20\x31\x2e\x30\x2f\x2f\x45\x4e\x22\x20\x22\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x61\x70\x70\x6c\x65\x2e\x63\x6f\x6d\x2f\x44\x54\x44\x73\x2f\x50\x72\x6f\x70\x65\x72\x74\x79\x4c\x69\x73\x74\x2d\x31\x2e\x30\x2e\x64\x74\x64\x22\x3e\x0a\x3c\x70\x6c\x69\x73\x74\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22\x31\x2e\x30\x22\x3e\x0a\x3c\x64\x69\x63\x74\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x4c\x61\x62\x65\x6c\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x52\x65\x76\x65\x72\x73\x65\x44\x4e\x53\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x50\x72\x6f\x67\x72\x61\x6d\x41\x72\x67\x75\x6d\x65\x6e\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x61\x72\x72\x61\x79\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x69\x66\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x45\x78\x65\x63\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x72\x61\x6e\x67\x65\x20\x24\x61\x72\x67\x20\x3a\x3d\x20\x2e\x41\x72\x67\x76\x20\x7d\x7d\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x24\x61\x72\x67\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x3c\x2f\x61\x72\x72\x61\x79\x3e\x0a\x09\x7b\x7b\x2d\x20\x69\x66\x20\x2e\x45\x6e\x76\x73\x20\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x45\x6e\x76\x69\x72\x6f\x6e\x6d\x65\x6e\x74\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x72\x61\x6e\x67\x65\x20\x24\x6b\x65\x79\x2c\x20\x24\x76\x61\x6c\x75\x65\x20\x3a\x3d\x20\x2e\x45\x6e\x76\x73\x20\x7d\x7d\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x7b\x7b\x20\x24\x6b\x65\x79\x20\x7d\x7d\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x24\x76\x61\x6c\x75\x65\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x09\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x09\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x0a\x09\x7b\x7b\x69\x66\x20\x2e\x55\x73\x65\x72\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x55\x73\x65\x72\x4e\x61\x6d\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x55\x73\x65\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x47\x72\x6f\x75\x70\x4e\x61\x6d\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x47\x72\x6f\x75\x70\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x49\x6e\x69\x74\x47\x72\x6f\x75\x70\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x0a\x09\x7b\x7b\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x52\x75\x6e\x41\x74\x4c\x6f\x61\x64\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x52\x65\x73\x74\x61\x72\x74\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x4b\x65\x65\x70\x41\x6c\x69\x76\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x3c\x21\x2d\x2d\x64\x69\x63\x74\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x43\x72\x61\x73\x68\x65\x64\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x4e\x65\x74\x77\x6f\x72\x6b\x53\x74\x61\x74\x65\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x74\x72\x75\x65\x2f\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x53\x75\x63\x63\x65\x73\x73\x66\x75\x6c\x45\x78\x69\x74\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x66\x61\x6c\x73\x65\x2f\x3e\x0a\x09\x3c\x2f\x64\x69\x63\x74\x2d\x2d\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x50\x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x6f\x66\x74\x52\x65\x73\x6f\x75\x72\x63\x65\x4c\x69\x6d\x69\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x3e\x0a\x09\x09\x3c\x6b\x65\x79\x3e\x4e\x75\x6d\x62\x65\x72\x4f\x66\x46\x69\x6c\x65\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x09\x3c\x69\x6e\x74\x65\x67\x65\x72\x3e\x38\x31\x39\x32\x3c\x2f\x69\x6e\x74\x65\x67\x65\x72\x3e\x0a\x09\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x48\x61\x72\x64\x52\x65\x73\x6f\x75\x72\x63\x65\x4c\x69\x6d\x69\x74\x73\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x64\x69\x63\x74\x2f\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x7b\x7b\x20\x69\x66\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x57\x6f\x72\x6b\x69\x6e\x67\x44\x69\x72\x65\x63\x74\x6f\x72\x79\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x7d\x7d\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x0a\x09\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x74\x61\x6e\x64\x61\x72\x64\x45\x72\x72\x6f\x72\x50\x61\x74\x68\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x4c\x6f\x67\x64\x69\x72\x20\x7d\x7d\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2e\x6c\x6f\x67\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x09\x3c\x6b\x65\x79\x3e\x53\x74\x61\x6e\x64\x61\x72\x64\x4f\x75\x74\x50\x61\x74\x68\x3c\x2f\x6b\x65\x79\x3e\x0a\x09\x3c\x73\x74\x72\x69\x6e\x67\x3e\x7b\x7b\x20\x2e\x4c\x6f\x67\x64\x69\x72\x20\x7d\x7d\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2e\x6c\x6f\x67\x3c\x2f\x73\x74\x72\x69\x6e\x67\x3e\x0a\x3c\x2f\x64\x69\x63\x74\x3e\x0a\x3c\x2f\x70\x6c\x69\x73\x74\x3e\x0a") // FileDistEtcSystemdSystemNameServiceTmpl is "dist/etc/systemd/system/_name_.service.tmpl" var FileDistEtcSystemdSystemNameServiceTmpl = []byte("\x23\x20\x50\x72\x65\x2d\x72\x65\x71\x0a\x23\x20\x73\x75\x64\x6f\x20\x6d\x6b\x64\x69\x72\x20\x2d\x70\x20\x7b\x7b\x20\x2e\x4c\x6f\x63\x61\x6c\x20\x7d\x7d\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2f\x20\x7b\x7b\x20\x2e\x4c\x6f\x63\x61\x6c\x20\x7d\x7d\x2f\x76\x61\x72\x2f\x6c\x6f\x67\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x7b\x7b\x20\x69\x66\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x0a\x7b\x7b\x2d\x20\x69\x66\x20\x61\x6e\x64\x20\x2e\x55\x73\x65\x72\x20\x28\x20\x6e\x65\x20\x22\x72\x6f\x6f\x74\x22\x20\x2e\x55\x73\x65\x72\x20\x29\x20\x2d\x7d\x7d\x0a\x23\x20\x73\x75\x64\x6f\x20\x61\x64\x64\x75\x73\x65\x72\x20\x7b\x7b\x20\x2e\x55\x73\x65\x72\x20\x7d\x7d\x20\x2d\x2d\x68\x6f\x6d\x65\x20\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x23\x20\x73\x75\x64\x6f\x20\x63\x68\x6f\x77\x6e\x20\x2d\x52\x20\x7b\x7b\x20\x2e\x55\x73\x65\x72\x20\x7d\x7d\x3a\x7b\x7b\x20\x2e\x47\x72\x6f\x75\x70\x20\x7d\x7d\x20\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2f\x20\x2f\x76\x61\x72\x2f\x6c\x6f\x67\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x23\x20\x50\x6f\x73\x74\x2d\x69\x6e\x73\x74\x61\x6c\x6c\x0a\x23\x20\x73\x75\x64\x6f\x20\x73\x79\x73\x74\x65\x6d\x63\x74\x6c\x20\x7b\x7b\x20\x69\x66\x20\x6e\x6f\x74\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x20\x2d\x2d\x75\x73\x65\x72\x20\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x20\x64\x61\x65\x6d\x6f\x6e\x2d\x72\x65\x6c\x6f\x61\x64\x0a\x23\x20\x73\x75\x64\x6f\x20\x73\x79\x73\x74\x65\x6d\x63\x74\x6c\x20\x7b\x7b\x20\x69\x66\x20\x6e\x6f\x74\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x20\x2d\x2d\x75\x73\x65\x72\x20\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x20\x72\x65\x73\x74\x61\x72\x74\x20\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x2e\x73\x65\x72\x76\x69\x63\x65\x0a\x23\x20\x73\x75\x64\x6f\x20\x6a\x6f\x75\x72\x6e\x61\x6c\x63\x74\x6c\x20\x7b\x7b\x20\x69\x66\x20\x6e\x6f\x74\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x20\x2d\x2d\x75\x73\x65\x72\x20\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x20\x2d\x78\x65\x66\x75\x20\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x0a\x5b\x55\x6e\x69\x74\x5d\x0a\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e\x3d\x7b\x7b\x20\x2e\x54\x69\x74\x6c\x65\x20\x7d\x7d\x20\x2d\x20\x7b\x7b\x20\x2e\x44\x65\x73\x63\x20\x7d\x7d\x0a\x44\x6f\x63\x75\x6d\x65\x6e\x74\x61\x74\x69\x6f\x6e\x3d\x7b\x7b\x20\x2e\x55\x52\x4c\x20\x7d\x7d\x0a\x7b\x7b\x20\x69\x66\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x0a\x41\x66\x74\x65\x72\x3d\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x6f\x6e\x6c\x69\x6e\x65\x2e\x74\x61\x72\x67\x65\x74\x0a\x57\x61\x6e\x74\x73\x3d\x6e\x65\x74\x77\x6f\x72\x6b\x2d\x6f\x6e\x6c\x69\x6e\x65\x2e\x74\x61\x72\x67\x65\x74\x20\x73\x79\x73\x74\x65\x6d\x64\x2d\x6e\x65\x74\x77\x6f\x72\x6b\x64\x2d\x77\x61\x69\x74\x2d\x6f\x6e\x6c\x69\x6e\x65\x2e\x73\x65\x72\x76\x69\x63\x65\x0a\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x0a\x5b\x53\x65\x72\x76\x69\x63\x65\x5d\x0a\x23\x20\x52\x65\x73\x74\x61\x72\x74\x20\x6f\x6e\x20\x63\x72\x61\x73\x68\x20\x28\x62\x61\x64\x20\x73\x69\x67\x6e\x61\x6c\x29\x2c\x20\x62\x75\x74\x20\x6e\x6f\x74\x20\x6f\x6e\x20\x27\x63\x6c\x65\x61\x6e\x27\x20\x66\x61\x69\x6c\x75\x72\x65\x20\x28\x65\x72\x72\x6f\x72\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x29\x0a\x23\x20\x41\x6c\x6c\x6f\x77\x20\x75\x70\x20\x74\x6f\x20\x33\x20\x72\x65\x73\x74\x61\x72\x74\x73\x20\x77\x69\x74\x68\x69\x6e\x20\x31\x30\x20\x73\x65\x63\x6f\x6e\x64\x73\x0a\x23\x20\x28\x69\x74\x27\x73\x20\x75\x6e\x6c\x69\x6b\x65\x6c\x79\x20\x74\x68\x61\x74\x20\x61\x20\x75\x73\x65\x72\x20\x6f\x72\x20\x70\x72\x6f\x70\x65\x72\x6c\x79\x2d\x72\x75\x6e\x6e\x69\x6e\x67\x20\x73\x63\x72\x69\x70\x74\x20\x77\x69\x6c\x6c\x20\x64\x6f\x20\x74\x68\x69\x73\x29\x0a\x52\x65\x73\x74\x61\x72\x74\x3d\x6f\x6e\x2d\x61\x62\x6e\x6f\x72\x6d\x61\x6c\x0a\x53\x74\x61\x72\x74\x4c\x69\x6d\x69\x74\x49\x6e\x74\x65\x72\x76\x61\x6c\x3d\x31\x30\x0a\x53\x74\x61\x72\x74\x4c\x69\x6d\x69\x74\x42\x75\x72\x73\x74\x3d\x33\x0a\x0a\x7b\x7b\x20\x69\x66\x20\x2e\x55\x73\x65\x72\x20\x2d\x7d\x7d\x0a\x23\x20\x55\x73\x65\x72\x20\x61\x6e\x64\x20\x67\x72\x6f\x75\x70\x20\x74\x68\x65\x20\x70\x72\x6f\x63\x65\x73\x73\x20\x77\x69\x6c\x6c\x20\x72\x75\x6e\x20\x61\x73\x0a\x55\x73\x65\x72\x3d\x7b\x7b\x20\x2e\x55\x73\x65\x72\x20\x7d\x7d\x0a\x47\x72\x6f\x75\x70\x3d\x7b\x7b\x20\x2e\x47\x72\x6f\x75\x70\x20\x7d\x7d\x0a\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x7b\x7b\x20\x69\x66\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x2d\x7d\x7d\x0a\x57\x6f\x72\x6b\x69\x6e\x67\x44\x69\x72\x65\x63\x74\x6f\x72\x79\x3d\x7b\x7b\x20\x2e\x57\x6f\x72\x6b\x64\x69\x72\x20\x7d\x7d\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x45\x78\x65\x63\x53\x74\x61\x72\x74\x3d\x7b\x7b\x69\x66\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x7b\x7b\x20\x2e\x49\x6e\x74\x65\x72\x70\x72\x65\x74\x65\x72\x20\x7d\x7d\x20\x7b\x7b\x20\x65\x6e\x64\x20\x7d\x7d\x7b\x7b\x20\x2e\x45\x78\x65\x63\x20\x7d\x7d\x20\x7b\x7b\x2d\x20\x72\x61\x6e\x67\x65\x20\x24\x61\x72\x67\x20\x3a\x3d\x20\x2e\x41\x72\x67\x76\x20\x7d\x7d\x7b\x7b\x20\x24\x61\x72\x67\x20\x7d\x7d\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x45\x78\x65\x63\x52\x65\x6c\x6f\x61\x64\x3d\x2f\x62\x69\x6e\x2f\x6b\x69\x6c\x6c\x20\x2d\x55\x53\x52\x31\x20\x24\x4d\x41\x49\x4e\x50\x49\x44\x0a\x0a\x7b\x7b\x69\x66\x20\x2e\x50\x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x20\x2d\x7d\x7d\x0a\x23\x20\x4c\x69\x6d\x69\x74\x20\x74\x68\x65\x20\x6e\x75\x6d\x62\x65\x72\x20\x6f\x66\x20\x66\x69\x6c\x65\x20\x64\x65\x73\x63\x72\x69\x70\x74\x6f\x72\x73\x20\x61\x6e\x64\x20\x70\x72\x6f\x63\x65\x73\x73\x65\x73\x3b\x20\x73\x65\x65\x20\x60\x6d\x61\x6e\x20\x73\x79\x73\x74\x65\x6d\x64\x2e\x65\x78\x65\x63\x60\x20\x66\x6f\x72\x20\x6d\x6f\x72\x65\x20\x6c\x69\x6d\x69\x74\x20\x73\x65\x74\x74\x69\x6e\x67\x73\x2e\x0a\x23\x20\x54\x68\x65\x73\x65\x20\x61\x72\x65\x20\x72\x65\x61\x73\x6f\x6e\x61\x62\x6c\x65\x20\x64\x65\x66\x61\x75\x6c\x74\x73\x20\x66\x6f\x72\x20\x61\x20\x70\x72\x6f\x64\x75\x63\x74\x69\x6f\x6e\x20\x73\x79\x73\x74\x65\x6d\x2e\x0a\x23\x20\x4e\x6f\x74\x65\x3a\x20\x73\x79\x73\x74\x65\x6d\x64\x20\x22\x75\x73\x65\x72\x20\x75\x6e\x69\x74\x73\x22\x20\x64\x6f\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x74\x68\x69\x73\x0a\x4c\x69\x6d\x69\x74\x4e\x4f\x46\x49\x4c\x45\x3d\x31\x30\x34\x38\x35\x37\x36\x0a\x4c\x69\x6d\x69\x74\x4e\x50\x52\x4f\x43\x3d\x36\x34\x0a\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x7b\x7b\x69\x66\x20\x2e\x4d\x75\x6c\x74\x69\x75\x73\x65\x72\x50\x72\x6f\x74\x65\x63\x74\x69\x6f\x6e\x20\x2d\x7d\x7d\x0a\x23\x20\x55\x73\x65\x20\x70\x72\x69\x76\x61\x74\x65\x20\x2f\x74\x6d\x70\x20\x61\x6e\x64\x20\x2f\x76\x61\x72\x2f\x74\x6d\x70\x2c\x20\x77\x68\x69\x63\x68\x20\x61\x72\x65\x20\x64\x69\x73\x63\x61\x72\x64\x65\x64\x20\x61\x66\x74\x65\x72\x20\x74\x68\x65\x20\x73\x65\x72\x76\x69\x63\x65\x20\x73\x74\x6f\x70\x73\x2e\x0a\x50\x72\x69\x76\x61\x74\x65\x54\x6d\x70\x3d\x74\x72\x75\x65\x0a\x23\x20\x55\x73\x65\x20\x61\x20\x6d\x69\x6e\x69\x6d\x61\x6c\x20\x2f\x64\x65\x76\x0a\x50\x72\x69\x76\x61\x74\x65\x44\x65\x76\x69\x63\x65\x73\x3d\x74\x72\x75\x65\x0a\x23\x20\x48\x69\x64\x65\x20\x2f\x68\x6f\x6d\x65\x2c\x20\x2f\x72\x6f\x6f\x74\x2c\x20\x61\x6e\x64\x20\x2f\x72\x75\x6e\x2f\x75\x73\x65\x72\x2e\x20\x4e\x6f\x62\x6f\x64\x79\x20\x77\x69\x6c\x6c\x20\x73\x74\x65\x61\x6c\x20\x79\x6f\x75\x72\x20\x53\x53\x48\x2d\x6b\x65\x79\x73\x2e\x0a\x50\x72\x6f\x74\x65\x63\x74\x48\x6f\x6d\x65\x3d\x74\x72\x75\x65\x0a\x23\x20\x4d\x61\x6b\x65\x20\x2f\x75\x73\x72\x2c\x20\x2f\x62\x6f\x6f\x74\x2c\x20\x2f\x65\x74\x63\x20\x61\x6e\x64\x20\x70\x6f\x73\x73\x69\x62\x6c\x79\x20\x73\x6f\x6d\x65\x20\x6d\x6f\x72\x65\x20\x66\x6f\x6c\x64\x65\x72\x73\x20\x72\x65\x61\x64\x2d\x6f\x6e\x6c\x79\x2e\x0a\x50\x72\x6f\x74\x65\x63\x74\x53\x79\x73\x74\x65\x6d\x3d\x66\x75\x6c\x6c\x0a\x23\x20\x2e\x2e\x2e\x20\x65\x78\x63\x65\x70\x74\x20\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x20\x62\x65\x63\x61\x75\x73\x65\x20\x77\x65\x20\x77\x61\x6e\x74\x20\x61\x20\x70\x6c\x61\x63\x65\x20\x66\x6f\x72\x20\x74\x68\x65\x20\x64\x61\x74\x61\x62\x61\x73\x65\x0a\x23\x20\x61\x6e\x64\x20\x2f\x76\x61\x72\x2f\x6c\x6f\x67\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x20\x62\x65\x63\x61\x75\x73\x65\x20\x77\x65\x20\x77\x61\x6e\x74\x20\x61\x20\x70\x6c\x61\x63\x65\x20\x77\x68\x65\x72\x65\x20\x6c\x6f\x67\x73\x20\x63\x61\x6e\x20\x67\x6f\x2e\x0a\x23\x20\x54\x68\x69\x73\x20\x6d\x65\x72\x65\x6c\x79\x20\x72\x65\x74\x61\x69\x6e\x73\x20\x72\x2f\x77\x20\x61\x63\x63\x65\x73\x73\x20\x72\x69\x67\x68\x74\x73\x2c\x20\x69\x74\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x61\x64\x64\x20\x61\x6e\x79\x20\x6e\x65\x77\x2e\x0a\x23\x20\x4d\x75\x73\x74\x20\x73\x74\x69\x6c\x6c\x20\x62\x65\x20\x77\x72\x69\x74\x61\x62\x6c\x65\x20\x6f\x6e\x20\x74\x68\x65\x20\x68\x6f\x73\x74\x21\x0a\x52\x65\x61\x64\x57\x72\x69\x74\x65\x44\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x3d\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x20\x2f\x76\x61\x72\x2f\x6c\x6f\x67\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x0a\x23\x20\x4e\x6f\x74\x65\x3a\x20\x69\x6e\x20\x76\x32\x33\x31\x20\x61\x6e\x64\x20\x61\x62\x6f\x76\x65\x20\x52\x65\x61\x64\x57\x72\x69\x74\x65\x50\x61\x74\x68\x73\x20\x68\x61\x73\x20\x62\x65\x65\x6e\x20\x72\x65\x6e\x61\x6d\x65\x64\x20\x74\x6f\x20\x52\x65\x61\x64\x57\x72\x69\x74\x65\x44\x69\x72\x65\x63\x74\x6f\x72\x69\x65\x73\x0a\x3b\x20\x52\x65\x61\x64\x57\x72\x69\x74\x65\x50\x61\x74\x68\x73\x3d\x2f\x6f\x70\x74\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x20\x2f\x76\x61\x72\x2f\x6c\x6f\x67\x2f\x7b\x7b\x20\x2e\x4e\x61\x6d\x65\x20\x7d\x7d\x0a\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x7b\x7b\x69\x66\x20\x2e\x50\x72\x69\x76\x69\x6c\x65\x67\x65\x64\x50\x6f\x72\x74\x73\x20\x2d\x7d\x7d\x0a\x23\x20\x54\x68\x65\x20\x66\x6f\x6c\x6c\x6f\x77\x69\x6e\x67\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x73\x65\x63\x75\x72\x69\x74\x79\x20\x64\x69\x72\x65\x63\x74\x69\x76\x65\x73\x20\x6f\x6e\x6c\x79\x20\x77\x6f\x72\x6b\x20\x77\x69\x74\x68\x20\x73\x79\x73\x74\x65\x6d\x64\x20\x76\x32\x32\x39\x20\x6f\x72\x20\x6c\x61\x74\x65\x72\x2e\x0a\x23\x20\x54\x68\x65\x79\x20\x66\x75\x72\x74\x68\x65\x72\x20\x72\x65\x74\x72\x69\x63\x74\x20\x70\x72\x69\x76\x69\x6c\x65\x67\x65\x73\x20\x74\x68\x61\x74\x20\x63\x61\x6e\x20\x62\x65\x20\x67\x61\x69\x6e\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x73\x65\x72\x76\x69\x63\x65\x2e\x0a\x23\x20\x4e\x6f\x74\x65\x20\x74\x68\x61\x74\x20\x79\x6f\x75\x20\x6d\x61\x79\x20\x68\x61\x76\x65\x20\x74\x6f\x20\x61\x64\x64\x20\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x62\x79\x20\x61\x6e\x79\x20\x70\x6c\x75\x67\x69\x6e\x73\x20\x69\x6e\x20\x75\x73\x65\x2e\x0a\x43\x61\x70\x61\x62\x69\x6c\x69\x74\x79\x42\x6f\x75\x6e\x64\x69\x6e\x67\x53\x65\x74\x3d\x43\x41\x50\x5f\x4e\x45\x54\x5f\x42\x49\x4e\x44\x5f\x53\x45\x52\x56\x49\x43\x45\x0a\x41\x6d\x62\x69\x65\x6e\x74\x43\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x3d\x43\x41\x50\x5f\x4e\x45\x54\x5f\x42\x49\x4e\x44\x5f\x53\x45\x52\x56\x49\x43\x45\x0a\x4e\x6f\x4e\x65\x77\x50\x72\x69\x76\x69\x6c\x65\x67\x65\x73\x3d\x74\x72\x75\x65\x0a\x0a\x23\x20\x43\x61\x76\x65\x61\x74\x3a\x20\x53\x6f\x6d\x65\x20\x66\x65\x61\x74\x75\x72\x65\x73\x20\x6d\x61\x79\x20\x6e\x65\x65\x64\x20\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x20\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x2e\x0a\x23\x20\x46\x6f\x72\x20\x65\x78\x61\x6d\x70\x6c\x65\x20\x61\x6e\x20\x22\x75\x70\x6c\x6f\x61\x64\x22\x20\x6d\x61\x79\x20\x6e\x65\x65\x64\x20\x43\x41\x50\x5f\x4c\x45\x41\x53\x45\x0a\x3b\x20\x43\x61\x70\x61\x62\x69\x6c\x69\x74\x79\x42\x6f\x75\x6e\x64\x69\x6e\x67\x53\x65\x74\x3d\x43\x41\x50\x5f\x4e\x45\x54\x5f\x42\x49\x4e\x44\x5f\x53\x45\x52\x56\x49\x43\x45\x20\x43\x41\x50\x5f\x4c\x45\x41\x53\x45\x0a\x3b\x20\x41\x6d\x62\x69\x65\x6e\x74\x43\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73\x3d\x43\x41\x50\x5f\x4e\x45\x54\x5f\x42\x49\x4e\x44\x5f\x53\x45\x52\x56\x49\x43\x45\x20\x43\x41\x50\x5f\x4c\x45\x41\x53\x45\x0a\x3b\x20\x4e\x6f\x4e\x65\x77\x50\x72\x69\x76\x69\x6c\x65\x67\x65\x73\x3d\x74\x72\x75\x65\x0a\x0a\x7b\x7b\x20\x65\x6e\x64\x20\x2d\x7d\x7d\x0a\x5b\x49\x6e\x73\x74\x61\x6c\x6c\x5d\x0a\x7b\x7b\x20\x69\x66\x20\x2e\x53\x79\x73\x74\x65\x6d\x20\x2d\x7d\x7d\x0a\x57\x61\x6e\x74\x65\x64\x42\x79\x3d\x6d\x75\x6c\x74\x69\x2d\x75\x73\x65\x72\x2e\x74\x61\x72\x67\x65\x74\x0a\x7b\x7b\x2d\x20\x65\x6c\x73\x65\x20\x2d\x7d\x7d\x0a\x57\x61\x6e\x74\x65\x64\x42\x79\x3d\x64\x65\x66\x61\x75\x6c\x74\x2e\x74\x61\x72\x67\x65\x74\x0a\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a") diff --git a/serviceman.go b/serviceman.go index 645f5ec..62d0a5b 100644 --- a/serviceman.go +++ b/serviceman.go @@ -5,7 +5,6 @@ package main import ( "flag" "fmt" - "log" "os" "path/filepath" "strings" @@ -114,9 +113,9 @@ func main() { return } conf.Local = filepath.Join(home, ".local") - conf.LogDir = filepath.Join(home, ".local", "share", conf.Name, "var", "log") + conf.Logdir = filepath.Join(home, ".local", "share", conf.Name, "var", "log") } else { - conf.LogDir = "/var/log/" + conf.Name + conf.Logdir = "/var/log/" + conf.Name } // Check to see if Exec exists @@ -149,12 +148,22 @@ func main() { } fmt.Fprintf(os.Stderr, "Using '%s' anyway.\n", conf.Exec) } + } else { + execpath, err := filepath.Abs(conf.Exec) + if nil != err { + fmt.Fprintf(os.Stderr, "Unrecoverable Error: %s", err) + os.Exit(4) + } else { + conf.Exec = execpath + } } fmt.Printf("\n%#v\n\n", conf) err = installer.Install(conf) if nil != err { - log.Fatal(err) + fmt.Fprintf(os.Stderr, "%s\n", err) + fmt.Fprintf(os.Stderr, "Use 'sudo' to install as a privileged system service.\n") + fmt.Fprintf(os.Stderr, "Use '--user' to install as an user service.\n") } }