From 626ec9835b4450fb2994ec931357279700437b6b Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Sun, 7 Mar 2021 14:09:15 +0100 Subject: webui: allow specifying the initial query Example use-case: given a github URL in a source code comment or commit message, one can now run: git bug webui --query 'metadata:github-url:"https://github.com/author/myproject/issues/42"' on the commandline to look up the details of that issue on the web ui quickly, offline. Fixes . --- commands/webui.go | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'commands') diff --git a/commands/webui.go b/commands/webui.go index d910a703..3857e968 100644 --- a/commands/webui.go +++ b/commands/webui.go @@ -6,6 +6,7 @@ import ( "log" "net" "net/http" + "net/url" "os" "os/signal" "strconv" @@ -34,6 +35,7 @@ type webUIOptions struct { open bool noOpen bool readOnly bool + query string } func newWebUICommand() *cobra.Command { @@ -62,6 +64,7 @@ Available git config: 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 to random available port)") flags.BoolVar(&options.readOnly, "read-only", false, "Whether to run the web UI in read-only mode") + flags.StringVar(&options.query, "query", "", "Set a custom query") return cmd } @@ -78,6 +81,11 @@ func runWebUI(env *Env, opts webUIOptions, args []string) error { addr := net.JoinHostPort(opts.host, strconv.Itoa(opts.port)) webUiAddr := fmt.Sprintf("http://%s", addr) + if len(opts.query) > 0 { + // Explicitly set the query parameter instead of going with a default one. + webUiAddr = fmt.Sprintf("%s/?q=%s", webUiAddr, url.QueryEscape(opts.query)) + } + router := mux.NewRouter() // If the webUI is not read-only, use an authentication middleware with a -- cgit From 3a819525d7811dcfb01d928af0e243de4388c456 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Sun, 7 Mar 2021 21:44:48 +0100 Subject: commands: minor fixes for the webui open with query - go fmt - add a shorthand - fix displayed webUI URL in the terminal --- commands/webui.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'commands') diff --git a/commands/webui.go b/commands/webui.go index 3857e968..2f80bcd0 100644 --- a/commands/webui.go +++ b/commands/webui.go @@ -35,7 +35,7 @@ type webUIOptions struct { open bool noOpen bool readOnly bool - query string + query string } func newWebUICommand() *cobra.Command { @@ -64,7 +64,7 @@ Available git config: 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 to random available port)") flags.BoolVar(&options.readOnly, "read-only", false, "Whether to run the web UI in read-only mode") - flags.StringVar(&options.query, "query", "", "Set a custom query") + flags.StringVarP(&options.query, "query", "q", "", "The query to open in the web UI bug list") return cmd } @@ -80,10 +80,11 @@ func runWebUI(env *Env, opts webUIOptions, args []string) error { 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. - webUiAddr = fmt.Sprintf("%s/?q=%s", webUiAddr, url.QueryEscape(opts.query)) + toOpen = fmt.Sprintf("%s/?q=%s", webUiAddr, url.QueryEscape(opts.query)) } router := mux.NewRouter() @@ -162,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) } -- cgit