Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 21b7332

Browse files
committed
feat: add log-level to cmd for debugging
1 parent 04b3064 commit 21b7332

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

cli/root.go

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"encoding/json"
66
"fmt"
7+
"log/slog"
78
"os"
89
"slices"
910
"strings"
@@ -29,11 +30,24 @@ func (r *RootCmd) Root() *serpent.Command {
2930
groups []string
3031
planJSON string
3132
preset string
33+
lvl string
3234
)
3335
cmd := &serpent.Command{
3436
Use: "codertf",
3537
Short: "codertf is a command line tool for previewing terraform template outputs.",
3638
Options: serpent.OptionSet{
39+
{
40+
Name: "log-level",
41+
Description: "Turns on trivy parser logs.",
42+
Flag: "log-level",
43+
Default: "",
44+
Value: serpent.EnumOf(&lvl,
45+
slog.LevelDebug.String(),
46+
slog.LevelInfo.String(),
47+
slog.LevelWarn.String(),
48+
slog.LevelError.String(),
49+
),
50+
},
3751
{
3852
Name: "dir",
3953
Description: "Directory with terraform files.",
@@ -80,7 +94,21 @@ func (r *RootCmd) Root() *serpent.Command {
8094

8195
ctx := i.Context()
8296

83-
output, _ := preview.Preview(ctx, preview.Input{}, dfs)
97+
logger := slog.New(slog.DiscardHandler)
98+
if lvl != "" {
99+
var logLevel slog.Level
100+
err := logLevel.UnmarshalText([]byte(lvl))
101+
if err != nil {
102+
return fmt.Errorf("invalid log level %q: %w", lvl, err)
103+
}
104+
105+
logger = slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
106+
Level: logLevel,
107+
}))
108+
}
109+
output, _ := preview.Preview(ctx, preview.Input{
110+
Logger: slog.New(slog.DiscardHandler),
111+
}, dfs)
84112
presets := output.Presets
85113
chosenPresetIndex := slices.IndexFunc(presets, func(p types.Preset) bool {
86114
return p.Name == preset
@@ -106,6 +134,7 @@ func (r *RootCmd) Root() *serpent.Command {
106134
Owner: types.WorkspaceOwner{
107135
Groups: groups,
108136
},
137+
Logger: logger,
109138
}
110139

111140
output, diags := preview.Preview(ctx, input, dfs)

0 commit comments

Comments
 (0)