diff options
| author | Shulhan <m.shulhan@gmail.com> | 2026-02-11 23:12:51 +0700 |
|---|---|---|
| committer | Shulhan <m.shulhan@gmail.com> | 2026-02-11 23:12:51 +0700 |
| commit | 29a8676f537bf2f5ee0ecdde828787faf96ea94e (patch) | |
| tree | 7f5943c069bb7d6d060b49bb3bacaf34ccd88cef /cmd/www-golangid/main.go | |
| parent | df7e460c1471311586ba7705e16e1d50f0a009d7 (diff) | |
| download | golang-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.go | 24 |
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) |
