-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
52 lines (42 loc) · 797 Bytes
/
main.go
File metadata and controls
52 lines (42 loc) · 797 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"errors"
"log"
"os"
"os/exec"
"golang.org/x/exp/slices"
"github.com/seal-io/tap/cmd"
"github.com/seal-io/tap/utils/signals"
)
func main() {
var (
args = os.Args[:1]
tfBins = []string{"terraform", "tofu"}
)
if len(args) != 0 && slices.Contains(tfBins, args[0]) {
args = args[1:]
tfBins = []string{args[0]}
}
var (
tfBin string
err error
)
for _, b := range tfBins {
tfBin, err = exec.LookPath(b)
if err == nil {
break
}
}
if err != nil {
log.Printf("[ERROR] Could not load terraform executable binary\n")
os.Exit(1)
}
err = cmd.Delegate(signals.SetupSignalHandler(), tfBin, os.Args[1:])
if err != nil {
var exitErr *exec.ExitError
if errors.As(err, &exitErr) {
os.Exit(exitErr.ExitCode())
}
os.Exit(1)
}
}