GitRoot
craft your forge, build your project, grow your community freely
1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: EUPL-1.2
4
5package main
6
7import (
8 "encoding/json"
9 "fmt"
10 "os"
11
12 "gitroot.dev/executor/lib"
13 pluginLib "gitroot.dev/libs/golang/plugin/model"
14)
15
16func main() {
17 if len(os.Args) < 2 {
18 fmt.Fprintf(os.Stderr, "Usage: executor <json_input>\n")
19 os.Exit(1)
20 }
21
22 jsonInput := os.Args[1]
23
24 var input pluginLib.Exec
25 if err := json.Unmarshal([]byte(jsonInput), &input); err != nil {
26 fmt.Fprintf(os.Stderr, "FATAL: Invalid JSON input: %v\n", err)
27 os.Exit(1)
28 }
29
30 pwd, err := os.Getwd()
31 if err != nil {
32 fmt.Fprintf(os.Stderr, "Error getting pwd: %v\n", err)
33 os.Exit(1)
34 }
35
36 status, err := lib.Start(pwd, input, true)
37 if err != nil {
38 fmt.Fprintf(os.Stderr, "Error starting: %v\n", err)
39 os.Exit(1)
40 }
41
42 statusJson, err := json.Marshal(status)
43 if err != nil {
44 fmt.Fprintf(os.Stderr, "Error marshaling output: %v\n", err)
45 os.Exit(1)
46 }
47 fmt.Println(string(statusJson))
48}