package main

import(
	"io"
	"log"
	"net"
	"os/exec"
)

func main() {
	_, err := exec.LookPath("pbcopy")
	if err != nil {
		log.Fatal(err.Error())
	}

	log.Print("Starting the server")
	listener, err := net.Listen("tcp", "127.0.0.1:8377")
	if err != nil {
		log.Fatal(err.Error())
	}

	for {
		conn, err := listener.Accept()
		if err != nil {
			log.Print(err.Error())
			return
		}

		go handleConnection(conn)
	}
}

func handleConnection(conn net.Conn) {
	copied, err := io.Copy(conn, conn)
	if err != nil {
		log.Print(err.Error())
	} else {
		log.Print("Echoed ", copied, " bytes")
	}
	conn.Close()
	log.Print("Connection closed")
}

package main

import(
	"io"
	"log"
	"net"
)

func main() {
	log.Print("Starting the server")
	listener, err := net.Listen("tcp", "127.0.0.1:8377")
	if err != nil {
		log.Fatal(err.Error())
	}

	for {
		conn, err := listener.Accept()
		if err != nil {
			log.Print(err.Error())
			return
		}

		go handleConnection(conn)
	}
}

func handleConnection(conn net.Conn) {
	copied, err := io.Copy(conn, conn)
	if err != nil {
		log.Print(err.Error())
	} else {
		log.Print("Echoed ", copied, " bytes")
	}
	conn.Close()
	log.Print("Connection closed")
}

--- 
+++ 
@@ -4,9 +4,15 @@
 	"io"
 	"log"
 	"net"
+	"os/exec"
 )
 
 func main() {
+	_, err := exec.LookPath("pbcopy")
+	if err != nil {
+		log.Fatal(err.Error())
+	}
+
 	log.Print("Starting the server")
 	listener, err := net.Listen("tcp", "127.0.0.1:8377")
 	if err != nil {
Check for presence of `pbcopy` executable at boot

Signed-off-by: Wincent Colaiuta <c76ac2e9cd86441713c7dfae92c451f3e6d17fdc@wincent.com>
