52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"os"
|
|
"time"
|
|
|
|
companion "browser.local/plugins/scum-server-plugin/companion"
|
|
)
|
|
|
|
func main() {
|
|
result := companion.SmokeResult{CompletedCommandIDs: []string{}, UnsupportedCommandIDs: []string{}}
|
|
if len(os.Args) != 1 {
|
|
writeResult(result)
|
|
os.Exit(1)
|
|
}
|
|
file, err := os.Open("config.yaml")
|
|
if err != nil {
|
|
writeResult(result)
|
|
os.Exit(1)
|
|
}
|
|
config, err := companion.LoadConfig(file)
|
|
closeErr := file.Close()
|
|
if err != nil || closeErr != nil {
|
|
writeResult(result)
|
|
os.Exit(1)
|
|
}
|
|
client, err := companion.NewClient(config, companion.Options{})
|
|
if err != nil {
|
|
writeResult(result)
|
|
os.Exit(1)
|
|
}
|
|
_ = os.Unsetenv(companion.ProofEnvironment)
|
|
isolated := os.Getenv(companion.SmokeIsolationEnvironment) == companion.SmokeIsolationValue
|
|
requestBudget := time.Duration(config.Timing.RequestTimeoutSeconds) * time.Second * time.Duration(2*companion.SmokeClaimLimit+4)
|
|
if requestBudget > 45*time.Second {
|
|
requestBudget = 45 * time.Second
|
|
}
|
|
ctx, cancel := context.WithTimeout(context.Background(), requestBudget)
|
|
defer cancel()
|
|
result, err = companion.RunOneShotSmoke(ctx, client, companion.SmokeOptions{IsolatedNonProduction: isolated})
|
|
writeResult(result)
|
|
if err != nil {
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
func writeResult(result companion.SmokeResult) {
|
|
_ = json.NewEncoder(os.Stdout).Encode(result)
|
|
}
|