mirror of
https://github.com/neilotoole/sq.git
synced 2024-12-30 11:46:08 +03:00
37 lines
831 B
Go
37 lines
831 B
Go
|
package jsonw
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
|
||
|
"github.com/neilotoole/sq/cli/buildinfo"
|
||
|
"github.com/neilotoole/sq/cli/output"
|
||
|
)
|
||
|
|
||
|
var _ output.VersionWriter = (*versionWriter)(nil)
|
||
|
|
||
|
// versionWriter implements output.VersionWriter for JSON.
|
||
|
type versionWriter struct {
|
||
|
out io.Writer
|
||
|
fm *output.Formatting
|
||
|
}
|
||
|
|
||
|
// NewVersionWriter returns a new output.VersionWriter instance
|
||
|
// that outputs version info in JSON.
|
||
|
func NewVersionWriter(out io.Writer, fm *output.Formatting) output.VersionWriter {
|
||
|
return &versionWriter{out: out, fm: fm}
|
||
|
}
|
||
|
|
||
|
func (w *versionWriter) Version(info buildinfo.BuildInfo, latestVersion string) error {
|
||
|
type cliBuildInfo struct {
|
||
|
buildinfo.BuildInfo
|
||
|
LatestVersion string `json:"latest_version"`
|
||
|
}
|
||
|
|
||
|
bi := cliBuildInfo{
|
||
|
BuildInfo: info,
|
||
|
LatestVersion: latestVersion,
|
||
|
}
|
||
|
|
||
|
return writeJSON(w.out, w.fm, bi)
|
||
|
}
|