aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-04-14 04:13:45 +0700
committerShulhan <ms@kilabit.info>2026-04-14 04:13:45 +0700
commitd74a06d65bbf5643ffe454596613ea15dcb366ea (patch)
tree324000f23651beb4ef021f252249170fc64375c2
parent18be9adb63484367bb3972d3842a52cd5268e6cf (diff)
downloadciigo-dev.tar.xz
cmd/ciigo: enable serve under systemd socket activationdev
The "ciigo serve" now can be activated using systemd.socket(5).
-rw-r--r--cmd/ciigo/main.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/cmd/ciigo/main.go b/cmd/ciigo/main.go
index f52c99d..d64addf 100644
--- a/cmd/ciigo/main.go
+++ b/cmd/ciigo/main.go
@@ -16,6 +16,7 @@ import (
"git.sr.ht/~shulhan/ciigo"
libhttp "git.sr.ht/~shulhan/pakakeh.go/lib/http"
"git.sr.ht/~shulhan/pakakeh.go/lib/memfs"
+ "git.sr.ht/~shulhan/pakakeh.go/lib/systemd"
)
const (
@@ -106,6 +107,21 @@ func main() {
usage()
case cmdServe:
+ listeners, err := systemd.Listeners(true)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if len(listeners) > 1 {
+ log.Fatal(`too many listeners received for activation`)
+ }
+ if len(listeners) == 1 {
+ serveOpts.Listener = listeners[0]
+ gotAddr := serveOpts.Listener.Addr().String()
+ if gotAddr != serveOpts.Address {
+ log.Fatalf(`invalid Listener address, got %s, want %s`,
+ gotAddr, serveOpts.Address)
+ }
+ }
err = ciigo.Serve(serveOpts, convertOpts)
case cmdVersion: