MCPcopy
hub / github.com/TomWright/dasel / Run

Method Run

internal/cli/interactive.go:37–112  ·  view source on GitHub ↗
(ctx *Globals)

Source from the content-addressed store, hash-verified

35}
36
37func (c *InteractiveCmd) Run(ctx *Globals) error {
38 var stdInBytes []byte = nil
39
40 if ctx.Stdin != nil {
41 var err error
42 stdInBytes, err = io.ReadAll(ctx.Stdin)
43 if err != nil {
44 return err
45 }
46 }
47
48 cfg, err := LoadConfig(c.ConfigPath)
49 if err != nil {
50 return err
51 }
52
53 if c.InFormat == "" && c.OutFormat == "" {
54 c.InFormat = cfg.DefaultFormat
55 c.OutFormat = cfg.DefaultFormat
56 } else if c.InFormat == "" {
57 c.InFormat = c.OutFormat
58 } else if c.OutFormat == "" {
59 c.OutFormat = c.InFormat
60 }
61
62 var runDasel interactiveDaselExecutor = func(selector string, root bool, formatIn parsing.Format, formatOut parsing.Format, in string) (res string, err error) {
63 defer func() {
64 if r := recover(); r != nil {
65 err = fmt.Errorf("panic: %v", r)
66 }
67 }()
68 var stdIn *bytes.Reader
69 if in != "" {
70 stdIn = bytes.NewReader([]byte(in))
71 } else {
72 stdIn = bytes.NewReader([]byte{})
73 }
74
75 o := runOpts{
76 Vars: c.Vars,
77 ExtReadWriteFlags: c.ExtReadWriteFlags,
78 ExtReadFlags: c.ExtReadFlags,
79 ExtWriteFlags: c.ExtWriteFlags,
80 InFormat: formatIn.String(),
81 OutFormat: formatOut.String(),
82 ReturnRoot: root,
83 Unstable: true,
84 Query: selector,
85
86 ConfigPath: c.ConfigPath,
87
88 Stdin: stdIn,
89 }
90
91 outBytes, err := run(o)
92 return string(outBytes), err
93 }
94

Callers

nothing calls this directly

Calls 6

FormatTypeAlias · 0.92
LoadConfigFunction · 0.85
runFunction · 0.85
newInteractiveTeaProgramFunction · 0.85
NewReaderMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected