summaryrefslogtreecommitdiff
path: root/cmd/www-golangid/main.go
diff options
context:
space:
mode:
authorShulhan <m.shulhan@gmail.com>2026-02-11 23:12:51 +0700
committerShulhan <m.shulhan@gmail.com>2026-02-11 23:12:51 +0700
commit29a8676f537bf2f5ee0ecdde828787faf96ea94e (patch)
tree7f5943c069bb7d6d060b49bb3bacaf34ccd88cef /cmd/www-golangid/main.go
parentdf7e460c1471311586ba7705e16e1d50f0a009d7 (diff)
downloadgolang-id-web-29a8676f537bf2f5ee0ecdde828787faf96ea94e.tar.xz
cmd/www-golangid: tambah opsi untuk memastikan server bila diam
Opsi -shutdown-idle menerima durasi yang akan secara otomatis mematikan server apabila tidak ada koneksi baru diterima setelah waktu yang ditentukan.
Diffstat (limited to 'cmd/www-golangid/main.go')
-rw-r--r--cmd/www-golangid/main.go24
1 files changed, 19 insertions, 5 deletions
diff --git a/cmd/www-golangid/main.go b/cmd/www-golangid/main.go
index dcf2f42..4ab4b77 100644
--- a/cmd/www-golangid/main.go
+++ b/cmd/www-golangid/main.go
@@ -8,8 +8,10 @@ import (
"flag"
"log"
"strings"
+ "time"
"git.sr.ht/~shulhan/ciigo"
+ "git.sr.ht/~shulhan/pakakeh.go/lib/http"
"git.sr.ht/~shulhan/pakakeh.go/lib/memfs"
"git.sr.ht/~shulhan/pakakeh.go/lib/systemd"
)
@@ -39,8 +41,9 @@ func main() {
},
}
serveOpts = ciigo.ServeOptions{
- ConvertOptions: convertOpts,
- Mfs: memFS,
+ ServerOptions: http.ServerOptions{
+ Memfs: memFS,
+ },
}
)
@@ -48,11 +51,22 @@ func main() {
`Jalankan mode pengembangan.`)
flag.StringVar(&serveOpts.Address, `http`, defListenAddr,
`Alamat peladen HTTP.`)
- flag.Parse()
- var cmd = strings.ToLower(flag.Arg(0))
+ var shutdownIdleDuration string
+ flag.StringVar(&shutdownIdleDuration, `shutdown-idle`, ``,
+ `Set the duration when server will shutting down after idle.`)
+
+ flag.Parse()
var err error
+ if shutdownIdleDuration != `` {
+ serveOpts.ShutdownIdleDuration, err = time.ParseDuration(shutdownIdleDuration)
+ if err != nil {
+ log.Fatalf(`invalid shutdown-idle %s: %s`, shutdownIdleDuration, err)
+ }
+ }
+
+ var cmd = strings.ToLower(flag.Arg(0))
switch cmd {
case cmdEmbed:
err = ciigo.GoEmbed(embedOpts)
@@ -72,7 +86,7 @@ func main() {
gotAddr, serveOpts.Address)
}
}
- err = ciigo.Serve(serveOpts)
+ err = ciigo.Serve(serveOpts, convertOpts)
}
if err != nil {
log.Fatal(err)