feat(cmd/ry): add output package with raw format fix

This commit is contained in:
2026-08-13 00:33:38 +08:00
parent 16ccc8d339
commit c0f04c01b4
5 changed files with 287 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
package output
import (
"encoding/json"
"fmt"
"io"
)
type Printer struct {
format string
writer io.Writer
}
func New(format string, w io.Writer) *Printer {
return &Printer{format: format, writer: w}
}
func (p *Printer) Print(data any) error {
switch p.format {
case "table":
return printTable(p.writer, data)
case "json":
return printJSON(p.writer, data)
case "yaml":
return printYAML(p.writer, data)
case "raw":
b, err := json.Marshal(data)
if err != nil {
return err
}
_, err = fmt.Fprintln(p.writer, string(b))
return err
default:
return fmt.Errorf("unknown output format: %s", p.format)
}
}
func (p *Printer) PrintRaw(raw []byte) error {
_, err := fmt.Fprintln(p.writer, string(raw))
return err
}