Files
Remote-Gameplay/main.go

87 lines
1.7 KiB
Go

package main
import (
"bufio"
"fmt"
"os"
"os/exec"
)
func main() {
err := LaplaceConfig()
if err != nil {
fmt.Println(err)
}
_, err = LaplaceServer(23424)
if err != nil {
fmt.Println(err)
}
}
// LaplaceConfig Sets up the laplace configuration
func LaplaceConfig() error {
// Setting up environment variable Laplace
curDir := os.Getenv("PWD")
os.Setenv("LAPLACE", curDir)
cmd := exec.Command("./laplace","-setconfig")
// USE THE FOLLOWING TO DEBUG
//cmdReader, err := cmd.StdoutPipe()
//if err != nil {
// fmt.Fprintln(os.Stderr, "Error creating StdoutPipe for Cmd", err)
// return
//}
//
//// the following is used to print output of the command
//// as it makes progress...
//scanner := bufio.NewScanner(cmdReader)
//go func() {
// for scanner.Scan() {
// fmt.Printf("%s\n", scanner.Text())
// //
// // TODO:
// // send output to server
// }
//}()
//
//if err := cmd.Start(); err != nil {
// return err
//}
if err := cmd.Run(); err != nil {
return err
}
return nil
}
// LaplaceServer Executes the laplace server
func LaplaceServer(port int)(*exec.Cmd, error) {
cmd := exec.Command("./laplace","-tls","-addr","0.0.0.0:" + fmt.Sprint(port))
// USE THE FOLLOWING TO DEBUG
cmdReader, err := cmd.StdoutPipe()
if err != nil {
fmt.Fprintln(os.Stderr, "Error creating StdoutPipe for Cmd", err)
return nil, err
}
// the following is used to print output of the command
// as it makes progress...
scanner := bufio.NewScanner(cmdReader)
go func() {
for scanner.Scan() {
fmt.Printf("%s\n", scanner.Text())
//
// TODO:
// send output to server
}
}()
if err = cmd.Run(); err != nil {
return nil, err
}
return cmd, nil
}