diff options
Diffstat (limited to 'internal/cmd')
| -rw-r--r-- | internal/cmd/gorankusu/main.go | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/internal/cmd/gorankusu/main.go b/internal/cmd/gorankusu/main.go index 1ede9d4..a55a518 100644 --- a/internal/cmd/gorankusu/main.go +++ b/internal/cmd/gorankusu/main.go @@ -7,6 +7,7 @@ package main import ( "flag" "log" + "net" "os" "os/signal" "path/filepath" @@ -17,6 +18,7 @@ import ( "git.sr.ht/~shulhan/pakakeh.go/lib/memfs" "git.sr.ht/~shulhan/pakakeh.go/lib/mlog" "git.sr.ht/~shulhan/pakakeh.go/lib/os/exec" + "git.sr.ht/~shulhan/pakakeh.go/lib/systemd" "git.sr.ht/~shulhan/pakakeh.go/lib/watchfs/v2" "git.sr.ht/~shulhan/ciigo" @@ -54,11 +56,28 @@ func main() { } var ( - ex *gorankusu.Example - err error + listener net.Listener + ex *gorankusu.Example + err error ) - ex, err = gorankusu.NewExample(listenAddress, isDev) + 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 { + listener = listeners[0] + gotAddr := listener.Addr().String() + if gotAddr != listenAddress { + log.Fatalf(`invalid Listener address, got %s, want %s`, + gotAddr, listenAddress) + } + } + + ex, err = gorankusu.NewExample(listener, listenAddress, isDev) if err != nil { mlog.Fatalf(`%s`, err) } |
