From d199cb8c00d4b06fe9e574fbf03e9762f01d3ba2 Mon Sep 17 00:00:00 2001
From: kaiyou <dev@kaiyou.fr>
Date: Thu, 2 Nov 2023 14:06:22 +0100
Subject: [PATCH] Upgrade dolly to support daemonization

---
 cmd/hepto/config.go | 3 +++
 cmd/hepto/hepto.go  | 2 +-
 go.mod              | 2 +-
 go.sum              | 2 ++
 4 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/cmd/hepto/config.go b/cmd/hepto/config.go
index 3f0599f..2301f51 100644
--- a/cmd/hepto/config.go
+++ b/cmd/hepto/config.go
@@ -16,6 +16,8 @@ import (
 
 // General configuration, used for parsing flags
 type Config struct {
+	// Should we fork and daemonize
+	Daemonize bool
 	// Data is stored under this base folder, a subfolder
 	// is created per running cluster on the host, then another
 	// subfolder is created per node
@@ -43,6 +45,7 @@ func (c *Config) FlagSet() *flag.FlagSet {
 	fs := flag.NewFlagSet("hepto", flag.ExitOnError)
 	// General config
 	fs.IntVar(&config.LogLevel, "verbose", 0, "Make logs more verbose")
+	fs.BoolVar(&config.Daemonize, "daemonize", false, "Daemonize the subprocess")
 	fs.BoolVar(&config.Pprof, "pprof", false, "Enable Golang profiling")
 	fs.StringVar(&config.DataDir, "data", "/var/lib", "Data base directory")
 	// Cluster settings
diff --git a/cmd/hepto/hepto.go b/cmd/hepto/hepto.go
index 5198199..60e376d 100644
--- a/cmd/hepto/hepto.go
+++ b/cmd/hepto/hepto.go
@@ -36,7 +36,7 @@ func Hepto() error {
 	config.Iface.ReadinessProbe = netip.AddrPortFrom(config.Network.DNS[0], 53)
 	manager := services.NewManager(&config.Cluster, &config.Node, config.Logger)
 	// Create a container and start the manager
-	c := dolly.NewForking()
+	c := dolly.NewForking(!config.Daemonize)
 	c.AddAll(
 		dolly.NewContainer(config.Node.Name),
 		&config.Network,
diff --git a/go.mod b/go.mod
index 9ed5212..43d5f6d 100644
--- a/go.mod
+++ b/go.mod
@@ -60,7 +60,7 @@ require (
 	github.com/sirupsen/logrus v1.9.3
 	github.com/vishvananda/netlink v1.2.1-beta.2
 	go.acides.org/daeman v0.3.4
-	go.acides.org/dolly v0.4.7
+	go.acides.org/dolly v0.5.0
 	go.acides.org/pekahi v0.2.1
 	go.acides.org/sml v0.2.3
 	go.etcd.io/etcd/server/v3 v3.5.9
diff --git a/go.sum b/go.sum
index b2bef05..2e915ac 100644
--- a/go.sum
+++ b/go.sum
@@ -1144,6 +1144,8 @@ go.acides.org/daeman v0.3.4 h1:gjKq95TpP2+IMUkW/u1do4J43Y6KhTOPwOg6BBCBT74=
 go.acides.org/daeman v0.3.4/go.mod h1:fOZ4YudsVjbUan8WYTs0ED6JfpZ7Z6mlN4Lnn1qW5nk=
 go.acides.org/dolly v0.4.7 h1:WNqQm0lNk+JxDdPgLtmMURgPBedTlO6BxrMLFbFrswg=
 go.acides.org/dolly v0.4.7/go.mod h1:eO56y+YmSx2h0/Zy7+p2zxNeJVl4iIWMM/vsRFMaIDM=
+go.acides.org/dolly v0.5.0 h1:BEYEWDE/XjysQ45L2nESgoZ+GyqwE5MO1ba+vOlUwZ4=
+go.acides.org/dolly v0.5.0/go.mod h1:eO56y+YmSx2h0/Zy7+p2zxNeJVl4iIWMM/vsRFMaIDM=
 go.acides.org/pekahi v0.2.1 h1:ysmC14q+hnYXcuB1Ew2XoWDZsgR1jbut89ACRLwi43I=
 go.acides.org/pekahi v0.2.1/go.mod h1:AxgN7Ss6dCRHoNOVWMymkmDafWYdDV7ce6jPl5bqyRc=
 go.acides.org/sml v0.2.3 h1:YJAdiFdTHeIqhoYNNxQHx/rTyF+4w7IpES02vUXoFF4=
-- 
GitLab