diff options
| -rw-r--r-- | go.mod | 3 | ||||
| -rw-r--r-- | go.sum | 4 | ||||
| -rw-r--r-- | local.go | 25 |
3 files changed, 30 insertions, 2 deletions
@@ -3,16 +3,17 @@ module github.com/golang-id/tour go 1.24.0 require ( + git.sr.ht/~shulhan/pakakeh.go v0.60.3-0.20260202092811-1e3bb9be8444 golang.org/x/tools v0.40.0 golang.org/x/tools/godoc v0.1.0-deprecated ) require ( - github.com/google/go-cmp v0.7.0 // indirect github.com/yuin/goldmark v1.7.13 // indirect golang.org/x/mod v0.31.0 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.39.0 // indirect ) //replace golang.org/x/tools => ../../../golang.org/x/tools @@ -1,3 +1,5 @@ +git.sr.ht/~shulhan/pakakeh.go v0.60.3-0.20260202092811-1e3bb9be8444 h1:mqX+Z2dyfChpFOgt6gV9R5AT3oQN3pw4gMbPQLGm1DI= +git.sr.ht/~shulhan/pakakeh.go v0.60.3-0.20260202092811-1e3bb9be8444/go.mod h1:1MkKXbLZRHTcnheeSEbRpGztkym4Yxzh90ep+jCxbDc= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/yuin/goldmark v1.7.13 h1:GPddIs617DnBLFFVJFgpo1aBfe/4xcvMc3SB5t/D0pA= @@ -8,6 +10,8 @@ golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= +golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= golang.org/x/tools/godoc v0.1.0-deprecated h1:o+aZ1BOj6Hsx/GBdJO/s815sqftjSnrZZwyYTHODvtk= @@ -22,6 +22,7 @@ import ( "strings" "time" + "git.sr.ht/~shulhan/pakakeh.go/lib/systemd" "golang.org/x/tools/playground/socket" // Imports so that go build/install automatically installs them. @@ -155,7 +156,29 @@ func main() { log.Printf("Please open your web browser and visit %s", url) } }() - log.Fatal(http.ListenAndServe(httpAddr, nil)) + + listeners, err := systemd.Listeners(true) + if err != nil { + log.Fatal(err) + } + if len(listeners) > 1 { + log.Fatal(`too many listeners received for activation`) + } + var listener net.Listener + if len(listeners) == 1 { + listener = listeners[0] + gotAddr := listener.Addr().String() + if gotAddr != httpAddr { + log.Fatalf(`invalid Listener address, got %s, want %s`, + gotAddr, httpAddr) + } + } + if listener != nil { + err = http.Serve(listener, nil) + } else { + err = http.ListenAndServe(httpAddr, nil) + } + log.Fatal(err) } // registerStatic registers handlers to serve static content |
