aboutsummaryrefslogtreecommitdiffstats
path: root/commands/webui.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/webui.go')
-rw-r--r--commands/webui.go19
1 files changed, 16 insertions, 3 deletions
diff --git a/commands/webui.go b/commands/webui.go
index 7e5fc752..2f80bcd0 100644
--- a/commands/webui.go
+++ b/commands/webui.go
@@ -4,9 +4,12 @@ import (
"context"
"fmt"
"log"
+ "net"
"net/http"
+ "net/url"
"os"
"os/signal"
+ "strconv"
"time"
"github.com/99designs/gqlgen/graphql/playground"
@@ -27,10 +30,12 @@ import (
const webUIOpenConfigKey = "git-bug.webui.open"
type webUIOptions struct {
+ host string
port int
open bool
noOpen bool
readOnly bool
+ query string
}
func newWebUICommand() *cobra.Command {
@@ -54,10 +59,12 @@ Available git config:
flags := cmd.Flags()
flags.SortFlags = false
+ flags.StringVar(&options.host, "host", "127.0.0.1", "Network address or hostname to listen to (default to 127.0.0.1)")
flags.BoolVar(&options.open, "open", false, "Automatically open the web UI in the default browser")
flags.BoolVar(&options.noOpen, "no-open", false, "Prevent the automatic opening of the web UI in the default browser")
- flags.IntVarP(&options.port, "port", "p", 0, "Port to listen to (default is random)")
+ flags.IntVarP(&options.port, "port", "p", 0, "Port to listen to (default to random available port)")
flags.BoolVar(&options.readOnly, "read-only", false, "Whether to run the web UI in read-only mode")
+ flags.StringVarP(&options.query, "query", "q", "", "The query to open in the web UI bug list")
return cmd
}
@@ -71,8 +78,14 @@ func runWebUI(env *Env, opts webUIOptions, args []string) error {
}
}
- addr := fmt.Sprintf("127.0.0.1:%d", opts.port)
+ addr := net.JoinHostPort(opts.host, strconv.Itoa(opts.port))
webUiAddr := fmt.Sprintf("http://%s", addr)
+ toOpen := webUiAddr
+
+ if len(opts.query) > 0 {
+ // Explicitly set the query parameter instead of going with a default one.
+ toOpen = fmt.Sprintf("%s/?q=%s", webUiAddr, url.QueryEscape(opts.query))
+ }
router := mux.NewRouter()
@@ -150,7 +163,7 @@ func runWebUI(env *Env, opts webUIOptions, args []string) error {
shouldOpen := (configOpen && !opts.noOpen) || opts.open
if shouldOpen {
- err = open.Run(webUiAddr)
+ err = open.Run(toOpen)
if err != nil {
env.out.Println(err)
}