aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--go.mod3
-rw-r--r--go.sum4
-rw-r--r--local.go25
3 files changed, 30 insertions, 2 deletions
diff --git a/go.mod b/go.mod
index dd51cc8..2aa6482 100644
--- a/go.mod
+++ b/go.mod
@@ -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
diff --git a/go.sum b/go.sum
index 968c29a..0ef0e51 100644
--- a/go.sum
+++ b/go.sum
@@ -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=
diff --git a/local.go b/local.go
index f29a822..73cf2d5 100644
--- a/local.go
+++ b/local.go
@@ -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