39 lines
882 B
Go
39 lines
882 B
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
"os/exec"
|
|
)
|
|
|
|
func main() {
|
|
var ttpid int
|
|
ttpid = 0
|
|
http.HandleFunc("/", http.NotFound)
|
|
//TestToolkit endpoint
|
|
http.HandleFunc("/runtest", func(w http.ResponseWriter, r *http.Request) {
|
|
//check if TestToolkit is running
|
|
if (ttpid > 0) {
|
|
w.WriteHeader(503)
|
|
} else{
|
|
id := r.URL.Query().Get("id")
|
|
//Check if ID argument is given if not return 400
|
|
if (len(id) < 1) {
|
|
w.WriteHeader(400)
|
|
}else {
|
|
//Start TestToolkit, if unable to start command then return 502
|
|
cmd := exec.Command("./test.sh", id)
|
|
err := cmd.Start()
|
|
if err != nil {
|
|
w.WriteHeader(503)
|
|
}
|
|
w.WriteHeader(200)
|
|
ttpid = cmd.Process.Pid
|
|
}
|
|
}
|
|
})
|
|
http.HandleFunc("/poweroff", func(w http.ResponseWriter, r *http.Request) {
|
|
//Poweroff endpoint
|
|
exec.Command("systemctl", "poweroff").Run()
|
|
})
|
|
http.ListenAndServe("127.0.0.1:5000", nil)
|
|
} |