server: add -l / -listen flag

Allows setting a listen address (not just port) on the command line. It won't modify the config unless gomuks is being run for the first time.
This commit is contained in:
paige paigie 2024-12-12 05:31:03 +00:00
parent 69c127a0a2
commit 6897ba477c
2 changed files with 10 additions and 1 deletions

View file

@ -31,13 +31,14 @@ import (
var wantHelp, _ = flag.MakeHelpFlag()
var wantVersion = flag.MakeFull("v", "version", "View gomuks version and quit.", "false").Bool()
var wantListen = flag.MakeFull("l", "listen", "Set webserver listen address", "").String()
func main() {
hicli.InitialDeviceDisplayName = "gomuks web"
exhttp.AutoAllowCORS = false
flag.SetHelpTitles(
"gomuks - A Matrix client written in Go.",
"gomuks [-hv]",
"gomuks [-hvl]",
)
err := flag.Parse()
@ -53,7 +54,11 @@ func main() {
os.Exit(0)
}
gmx := gomuks.NewGomuks()
if *wantListen != "" {
gmx.Config.Web.ListenAddress = *wantListen
}
gmx.Version = version.Version
gmx.Commit = version.Commit
gmx.LinkifiedVersion = version.LinkifiedVersion

View file

@ -83,6 +83,7 @@ func (gmx *Gomuks) LoadConfig() error {
if err != nil && !errors.Is(err, os.ErrNotExist) {
return err
}
address := gmx.Config.Web.ListenAddress
gmx.Config = makeDefaultConfig()
changed := false
if file != nil {
@ -93,6 +94,9 @@ func (gmx *Gomuks) LoadConfig() error {
} else {
changed = true
}
if address != "" {
gmx.Config.Web.ListenAddress = address
}
if gmx.Config.Web.TokenKey == "" {
gmx.Config.Web.TokenKey = random.String(64)
changed = true