8000 Add links to every HTTP services found into the Symfony WDT · symfony-cli/symfony-cli@7457772 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7457772

Browse files
committed
Add links to every HTTP services found into the Symfony WDT
1 parent 0604752 commit 7457772

File tree

2 files changed

+48
-24
lines changed

2 files changed

+48
-24
lines changed

envs/local.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,24 @@ func (l *Local) FindRelationshipPrefix(frel, fscheme string) string {
7575
return ""
7676
}
7777

78+
func (l *Local) FindHttpServices() []string {
79+
services := []string{}
80+
81+
for key, endpoints := range l.Relationships() {
82+
for _, endpoint := range endpoints {
83+
if scheme, ok := endpoint["scheme"].(string); !ok {
84+
continue
85+
} else if scheme != "http" && scheme != "https" {
86+
continue
87+
}
88+
89+
services = append(services, key)
90+
}
91+
}
92+
93+
return services
94+
}
95+
7896
func (l *Local) FindServiceUrl(serviceOrRelationship string) (string, bool) {
7997
relationships := l.Relationships()
8098
env := AsMap(l)

local/php/toolbar.go

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,14 @@ package php
2222
import (
2323
"bytes"
2424
"fmt"
25-
"io"
26-
"io/ioutil"
27-
"regexp"
28-
2925
"github.com/pkg/errors"
3026
"github.com/symfony-cli/symfony-cli/envs"
3127
"github.com/symfony-cli/terminal"
28+
"golang.org/x/text/cases"
29+
"golang.org/x/text/language"
30+
"io"
31+
"io/ioutil"
32+
"regexp"
3233
)
3334

3435
func (p *Server) tweakToolbar(body io.ReadCloser, env map[string]string) (io.ReadCloser, error) {
@@ -81,23 +82,32 @@ func (p *Server) tweakToolbar(body io.ReadCloser, env map[string]string) (io.Rea
8182
}
8283
}
8384

84-
webmail := `<span class="sf-toolbar-status sf-toolbar-status-red">Down</span>`
85-
rabbitmqui := `<span class="sf-toolbar-status sf-toolbar-status-red">Down</span>`
85+
webmail := `<b>Webmail</b> <span class="sf-toolbar-status sf-toolbar-status-red">Down</span>`
86+
rabbitmqui := `<b>RabbitMQ UI</b> <span class="sf-toolbar-status sf-toolbar-status-red">Down</span>`
8687
blackfire := `<span class="sf-toolbar-status sf-toolbar-status-red">Down</span>`
88+
extraLinks := ``
8789
if env, err := envs.NewLocal(p.projectDir, terminal.IsDebug()); err == nil {
88-
values := envs.AsMap(env)
89-
if prefix := env.FindRelationshipPrefix("mailer", "http"); prefix != "" {
90-
if url, exists := values[prefix+"URL"]; exists {
91-
webmail = fmt.Sprintf(`<span class="sf-toolbar-status sf-toolbar-status-green">Up</span>&nbsp;&nbsp;&nbsp;<a class="sf-cli-webmail" href="%s" target="_blank">Open</a>`, url)
92-
}
90+
if url, exists := env.FindServiceUrl("mailer"); exists {
91+
webmail = fmt.Sprintf(`<b><a class="sf-cli-webmail" href="%s" target="_blank">Webmail</a></b> <span class="sf-toolbar-status sf-toolbar-status-green">Up</span></a>`, url)
9392
}
94-
if prefix := env.FindRelationshipPrefix("amqp", "http"); prefix != "" {
95-
if url, exists := values[prefix+"URL"]; exists {
96-
rabbitmqui = fmt.Sprintf(`<span class="sf-toolbar-status sf-toolbar-status-green">Up</span>&nbsp;&nbsp;&nbsp;<a class="sf-cli-rabbitmq" href="%s" target="_blank">Open</a>`, url)
97-
}
93+
if url, exists := env.FindServiceUrl("amqp"); exists {
94+
rabbitmqui = fmt.Sprintf(`<b><a class="sf-cli-rabbitmq" href="%s" target="_blank">RabbitMQ UI</a></b> <span class="sf-toolbar-status sf-toolbar-status-green">Up</span></a>`, url)
9895
}
9996
if prefix := env.FindRelationshipPrefix("blackfire", "tcp"); prefix != "" {
100-
blackfire = `<span class="sf-toolbar-status sf-toolbar-status-green">Up</span>&nbsp;&nbsp;&nbsp;<a class="sf-cli-blackfire" href="https://blackfire.io/" target="_blank">Open</a>`
97+
blackfire = `<span class="sf-toolbar-status sf-toolbar-status-green">Up</span>`
98+
}
99+
for _, service := range env.FindHttpServices() {
100+
if service == "mailer-web" || service == "amqp" {
101+
continue
102+
}
103+
104+
if url, exists := env.FindServiceUrl(service); exists {
105+
extraLinks += fmt.Sprintf(`<div class="sf-toolbar-info-piece"><b><a class="sf-cli-service-link" href="%s" target="_blank">%s</a></b></div>`, url, cases.Title(language.Und).String(service))
106+
}
107+
}
108+
109+
if len(extraLinks) > 0 {
110+
extraLinks = `<hr/>` + extraLinks
101111
}
102112
}
103113

@@ -129,15 +139,11 @@ func (p *Server) tweakToolbar(body io.ReadCloser, env map[string]string) (io.Rea
129139
<div class="sf-toolbar-info-piece">
130140
<b>Env Vars</b>` + envVars + `
131141
</div>
142+
<div class="sf-toolbar-info-piece">` + rabbitmqui + `</div>
143+
<div class="sf-toolbar-info-piece">` + webmail + `</div>
132144
<div class="sf-toolbar-info-piece">
133-
<b>RabbitMQ UI</b>` + rabbitmqui + `
134-
</div>
135-
<div class="sf-toolbar-info-piece">
136-
<b>Webmail</b>` + webmail + `
137-
</div>
138-
<div class="sf-toolbar-info-piece">
139-
<b>Blackfire.io Agent</b>` + blackfire + `
140-
</div>
145+
<b><a class="sf-cli-blackfire" href="https://blackfire.io/" target="_blank">Blackfire.io Agent</a></b>` + blackfire + `</div>
146+
` + extraLinks + `
141147
</div>
142148
<div></div>
143149
</div>

0 commit comments

Comments
 (0)
0