From 0ae9942a08d70aa998ec7c0b41b9ba43fe83cc6c Mon Sep 17 00:00:00 2001 From: Shulhan Date: Wed, 4 Feb 2026 06:19:53 +0700 Subject: cmd/www-go-proposal: enable socket based activation using systemd --- cmd/www-go-proposal/main.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'cmd') diff --git a/cmd/www-go-proposal/main.go b/cmd/www-go-proposal/main.go index 9456949..6d8df0c 100644 --- a/cmd/www-go-proposal/main.go +++ b/cmd/www-go-proposal/main.go @@ -11,6 +11,7 @@ import ( "git.sr.ht/~shulhan/ciigo" "git.sr.ht/~shulhan/pakakeh.go/lib/memfs" + "git.sr.ht/~shulhan/pakakeh.go/lib/systemd" ) var memFS *memfs.MemFS @@ -46,6 +47,21 @@ func main() { case `embed`: err = ciigo.GoEmbed(embedOpts) default: + 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) } if err != nil { -- cgit v1.3