mirror of
https://git.phc.dm.unipi.it/aziis98/go-stats-server.git
synced 2026-10-07 03:24:52 +00:00
fix: setup also updates binary
This commit is contained in:
@@ -78,22 +78,25 @@ func handleConnection(conn net.Conn) {
|
||||
|
||||
func runCommand(args ...string) error {
|
||||
cmd := exec.Command(args[0], args[1:]...)
|
||||
if err := cmd.Run(); err != nil {
|
||||
return err
|
||||
|
||||
if output, err := cmd.CombinedOutput(); err != nil {
|
||||
return fmt.Errorf("%w: %s", err, output)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func setupSystemdService() error {
|
||||
// copy itself to /usr/bin
|
||||
if _, err := os.Stat("/usr/local/bin/stats-server"); err == nil {
|
||||
log.Println("binary already exists in /usr/local/bin, updating...")
|
||||
}
|
||||
|
||||
log.Println("copying itself to /usr/local/bin/stats-server")
|
||||
if err := runCommand("cp", os.Args[0], "/usr/local/bin/stats-server"); err != nil {
|
||||
if err := runCommand("cp", "-f", os.Args[0], "/usr/local/bin/stats-server"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// write systemd service unit
|
||||
log.Println("generating /etc/systemd/system/stats-server.service")
|
||||
log.Println("writing unit to /etc/systemd/system/stats-server.service")
|
||||
if err := os.WriteFile(
|
||||
"/etc/systemd/system/stats-server.service",
|
||||
[]byte(systemdServiceUnit),
|
||||
@@ -102,15 +105,18 @@ func setupSystemdService() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// reload systemd
|
||||
log.Println("running systemctl daemon-reload")
|
||||
if err := runCommand("systemctl", "daemon-reload"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// enable and start the service
|
||||
log.Println("running systemctl enable --now stats-server.service")
|
||||
if err := runCommand("systemctl", "enable", "--now", "stats-server.service"); err != nil {
|
||||
log.Println("running systemctl enable stats-server.service")
|
||||
if err := runCommand("systemctl", "enable", "stats-server.service"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Println("running systemctl (re)start stats-server.service")
|
||||
if err := runCommand("systemctl", "restart", "stats-server.service"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user