aboutsummaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2026-02-11 23:05:40 +0700
committerShulhan <ms@kilabit.info>2026-02-11 23:05:40 +0700
commit2686a70d0eeb14c0eba68f449658827e144e75a2 (patch)
tree75fd22c82c480f6476a0207286143673802968f1 /internal
parent9657823ef282479a6609fd77c74c3f64cb512ebd (diff)
downloadawwan-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.go36
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)
}