MCPcopy Create free account
hub / github.com/diillson/chatcli / daemonInstall

Function daemonInstall

cmd/daemon.go:222–250  ·  view source on GitHub ↗

daemonInstall writes a systemd / launchd unit template. Best-effort scaffold — operator adjusts as needed.

(args []string, logger *zap.Logger)

Source from the content-addressed store, hash-verified

220// daemonInstall writes a systemd / launchd unit template. Best-effort
221// scaffold — operator adjusts as needed.
222func daemonInstall(args []string, logger *zap.Logger) error {
223 exe, err := os.Executable()
224 if err != nil {
225 return err
226 }
227 cfg := scheduler.LoadConfigFromEnv()
228 sock := scheduler.DefaultSocketPath(cfg)
229 template := fmt.Sprintf(`# chatcli scheduler daemon unit
230# Adapt as needed for your init system.
231
232# systemd: drop at /etc/systemd/system/chatcli-scheduler.service
233[Unit]
234Description=chatcli scheduler daemon
235After=network.target
236
237[Service]
238Type=simple
239ExecStart=%s daemon start --socket %s
240Restart=on-failure
241User=%s
242
243[Install]
244WantedBy=default.target
245`, exe, sock, os.Getenv("USER"))
246 fmt.Println(template)
247 logger.Info("daemon install: template printed", zap.String("socket", sock))
248 _ = args
249 return nil
250}
251
252// ─── helpers ──────────────────────────────────────────────────
253

Callers 1

RunDaemonFunction · 0.85

Calls 4

LoadConfigFromEnvFunction · 0.92
DefaultSocketPathFunction · 0.92
InfoMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected