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}