Skip to content

Commit 184fec8

Browse files
aledbfroboquat
authored andcommitted
Refactor gp await to use available protocols
1 parent 439877a commit 184fec8

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

components/gitpod-cli/cmd/ports-await.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ import (
1515
"github.com/spf13/cobra"
1616
)
1717

18+
const (
19+
fnNetTCP = "/proc/net/tcp"
20+
fnNetTCP6 = "/proc/net/tcp6"
21+
)
22+
1823
var awaitPortCmd = &cobra.Command{
1924
Use: "await <port>",
2025
Short: "Waits for a process to listen on a port",
@@ -31,26 +36,29 @@ var awaitPortCmd = &cobra.Command{
3136
log.Fatal("cannot compile regexp pattern")
3237
}
3338

34-
fmt.Printf("Awaiting port %d... ", port)
35-
for {
36-
tcp, err := os.ReadFile("/proc/net/tcp")
37-
if err != nil {
38-
log.Fatalf("cannot read /proc/net/tcp: %s", err)
39+
var protos []string
40+
for _, path := range []string{fnNetTCP, fnNetTCP6} {
41+
if _, err := os.Stat(path); err == nil {
42+
protos = append(protos, path)
3943
}
44+
}
4045

41-
tcp6, err := os.ReadFile("/proc/net/tcp6")
42-
if err != nil {
43-
log.Fatalf("cannot read /proc/net/tcp6: %s", err)
44-
}
46+
fmt.Printf("Awaiting port %d... ", port)
47+
for {
48+
for _, proto := range protos {
49+
tcp, err := os.ReadFile(proto)
50+
if err != nil {
51+
log.Fatalf("cannot read %v: %s", proto, err)
52+
}
4553

46-
if pattern.MatchString(string(tcp)) || pattern.MatchString(string(tcp6)) {
47-
break
54+
if pattern.MatchString(string(tcp)) {
55+
fmt.Println("ok")
56+
return
57+
}
4858
}
4959

5060
time.Sleep(2 * time.Second)
5161
}
52-
53-
fmt.Println("ok")
5462
},
5563
}
5664

0 commit comments

Comments
 (0)