diff options
| author | Shulhan <ms@kilabit.info> | 2026-02-11 23:05:40 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2026-02-11 23:05:40 +0700 |
| commit | 2686a70d0eeb14c0eba68f449658827e144e75a2 (patch) | |
| tree | 75fd22c82c480f6476a0207286143673802968f1 /internal | |
| parent | 9657823ef282479a6609fd77c74c3f64cb512ebd (diff) | |
| download | awwan-2686a70d0eeb14c0eba68f449658827e144e75a2.tar.xz | |
internal/cmd/www-awwan: add option to set shutdown idle duration
The `-shutdown-idle` option set the duration when server will stop
accepting new connections and shutting down.
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/cmd/www-awwan/main.go | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/internal/cmd/www-awwan/main.go b/internal/cmd/www-awwan/main.go index 091cab8..7d04e9a 100644 --- a/internal/cmd/www-awwan/main.go +++ b/internal/cmd/www-awwan/main.go @@ -28,8 +28,16 @@ const defAddress = `127.0.0.1:4358` var MemfsWww *memfs.MemFS func main() { - var flagAddress = flag.String(`address`, defAddress, `Address to listen for client`) - var flagDev = flag.Bool(`dev`, false, `Watch local changes`) + var serveOpts = ciigo.ServeOptions{ + ServerOptions: http.ServerOptions{ + Memfs: MemfsWww, + }, + } + + flag.StringVar(&serveOpts.Address, `address`, defAddress, + `Address to listen for client`) + flag.BoolVar(&serveOpts.IsDevelopment, `dev`, false, + `Watch local changes`) flag.Parse() @@ -40,7 +48,7 @@ func main() { MaxFileSize: -1, TryDirect: true, } - if *flagDev { + if serveOpts.IsDevelopment { pubOpts.Root = `_bin` } @@ -55,6 +63,7 @@ func main() { } MemfsWww.Merge(mfsPub) + serveOpts.Memfs = MemfsWww var ( binName = filepath.Base(os.Args[0]) @@ -67,15 +76,8 @@ func main() { os.Exit(0) }() - log.Printf(`--- Starting %s at http://%s with dev=%v`, binName, *flagAddress, *flagDev) - - var optsServe = ciigo.ServeOptions{ - ServerOptions: http.ServerOptions{ - Memfs: MemfsWww, - Address: *flagAddress, - }, - IsDevelopment: *flagDev, - } + log.Printf(`--- Starting %s at http://%s with dev=%v`, binName, + serveOpts.Address, serveOpts.IsDevelopment) listeners, err := systemd.Listeners(true) if err != nil { @@ -85,15 +87,15 @@ func main() { log.Fatal(`too many listeners received for activation`) } if len(listeners) == 1 { - optsServe.Listener = listeners[0] - gotAddr := optsServe.Listener.Addr().String() - if gotAddr != optsServe.Address { + serveOpts.Listener = listeners[0] + gotAddr := serveOpts.Listener.Addr().String() + if gotAddr != serveOpts.Address { log.Fatalf(`invalid Listener address, got %s, want %s`, - gotAddr, optsServe.Address) + gotAddr, serveOpts.Address) } } - err = ciigo.Serve(optsServe, internal.DocConvertOpts) + err = ciigo.Serve(serveOpts, internal.DocConvertOpts) if err != nil { log.Fatal(err) } |
