8000 Merge pull request #489 from tucksaun/fix/open-local-wildcard · symfony-cli/symfony-cli@570fd66 · GitHub
[go: up one dir, main page]

Skip to content

Commit 570fd66

Browse files
authored
Merge pull request #489 from tucksaun/fix/open-local-wildcard
Don't try to use a wildcard domain in `open:local`
2 parents 7c0b22e + 89b3310 commit 570fd66

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

commands/openers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ var projectLocalOpenCmd = &console.Command{
5454
}
5555
host := fmt.Sprintf("127.0.0.1:%d", pidFile.Port)
5656
if proxyConf, err := proxy.Load(util.GetHomeDir()); err == nil {
57-
domains := proxyConf.GetDomains(projectDir)
57+
domains := proxyConf.GetReachableDomains(projectDir)
5858
if len(domains) > 0 {
5959
host = domains[0]
6060
}

local/proxy/config.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,23 @@ func (c *Config) GetDomains(dir string) []string {
158158
return domains
159159
}
160160

161+
func (c *Config) GetReachableDomains(dir string) []string {
162+
c.mu.Lock()
163+
defer c.mu.Unlock()
164+
domains := []string{}
165+
for domain, d := range c.domains {
166+
// domain is defined using a wildcard: we don't know the exact domain,
167+
// so we can't use it directly as-is to reach the project
168+
if strings.Contains(domain, "*") {
169+
continue
170+
}
171+
if d == dir {
172+
domains = append(domains, domain+"."+c.TLD)
173+
}
174+
}
175+
return domains
176+
}
177+
161178
func (c *Config) SetDomains(domains map[string]string) {
162179
c.mu.Lock()
163180
c.domains = domains

local/proxy/config_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,16 @@ func (s *ProxySuite) TestGetDir(c *C) {
4343
c.Assert(p.GetDir("foo.symfony.com"), Equals, "any_symfony_com")
4444
c.Assert(p.GetDir("foo.live.symfony.com"), Equals, "any_live_symfony_com")
4545
}
46+
47+
func (s *ProxySuite) TestGetReachableDomains(c *C) {
48+
p := &Config{
49+
TLD: "wip",
50+
domains: map[string]string{
51+
"*.symfony": "symfony_com",
52+
"symfony": "symfony_com",
53+
"custom.*.symfony": "symfony_com",
54+
"*.live.symfony": "symfony_com",
55+
},
56+
}
57+
c.Assert(p.GetReachableDomains("symfony_com"), DeepEquals, []string{"symfony.wip"})
58+
}

0 commit comments

Comments
 (0)
0