This adds the backend API, as well as backend infrastructure, including autostarting and basic communication between the Goroutine + Application.
34 lines
624 B
Go
34 lines
624 B
Go
package backendruntime
|
|
|
|
import (
|
|
"net"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
type Backend struct {
|
|
Name string `validate:"required"`
|
|
Path string `validate:"required"`
|
|
}
|
|
|
|
type Runtime struct {
|
|
isRuntimeRunning bool
|
|
logger *writeLogger
|
|
currentProcess *exec.Cmd
|
|
currentListener net.Listener
|
|
|
|
ProcessPath string
|
|
Logs []string
|
|
RuntimeCommands chan interface{}
|
|
}
|
|
|
|
type writeLogger struct {
|
|
Runtime *Runtime
|
|
}
|
|
|
|
func (writer writeLogger) Write(p []byte) (n int, err error) {
|
|
logSplit := strings.Split(string(p), "\n")
|
|
writer.Runtime.Logs = append(writer.Runtime.Logs, logSplit...)
|
|
|
|
return len(p), err
|
|
}
|