mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-03 09:16:40 +00:00
Merge pull request #1219 from aclfe/port-check80443
Added checks for port 80 and 443
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
|||||||
"syscall"
|
"syscall"
|
||||||
"text/template"
|
"text/template"
|
||||||
"time"
|
"time"
|
||||||
|
"net"
|
||||||
|
|
||||||
"golang.org/x/term"
|
"golang.org/x/term"
|
||||||
)
|
)
|
||||||
@@ -75,6 +76,17 @@ func main() {
|
|||||||
fmt.Println("Lets get started!")
|
fmt.Println("Lets get started!")
|
||||||
fmt.Println("")
|
fmt.Println("")
|
||||||
|
|
||||||
|
|
||||||
|
for _, p := range []int{80, 443} {
|
||||||
|
if err := checkPortsAvailable(p); err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err)
|
||||||
|
|
||||||
|
fmt.Printf("Please close any services on ports 80/443 in order to run the installation smoothly")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
reader := bufio.NewReader(os.Stdin)
|
reader := bufio.NewReader(os.Stdin)
|
||||||
inputContainer := readString(reader, "Would you like to run Pangolin as Docker or Podman containers?", "docker")
|
inputContainer := readString(reader, "Would you like to run Pangolin as Docker or Podman containers?", "docker")
|
||||||
|
|
||||||
@@ -776,3 +788,21 @@ func run(name string, args ...string) error {
|
|||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
return cmd.Run()
|
return cmd.Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func checkPortsAvailable(port int) error {
|
||||||
|
addr := fmt.Sprintf(":%d", port)
|
||||||
|
ln, err := net.Listen("tcp", addr)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf(
|
||||||
|
"ERROR: port %d is occupied or cannot be bound: %w\n\n",
|
||||||
|
port, err,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if closeErr := ln.Close(); closeErr != nil {
|
||||||
|
fmt.Fprintf(os.Stderr,
|
||||||
|
"WARNING: failed to close test listener on port %d: %v\n",
|
||||||
|
port, closeErr,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user