diff options
| author | Shulhan <ms@kilabit.info> | 2026-04-14 04:13:45 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2026-04-14 04:13:45 +0700 |
| commit | d74a06d65bbf5643ffe454596613ea15dcb366ea (patch) | |
| tree | 324000f23651beb4ef021f252249170fc64375c2 | |
| parent | 18be9adb63484367bb3972d3842a52cd5268e6cf (diff) | |
| download | ciigo-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.go | 16 |
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: |
