mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 05:40:11 +01:00
use io.WriterTo instead of custom save interface ti serialize metadata and rolie.
This commit is contained in:
parent
5276cea0a0
commit
22c7da1ed1
4 changed files with 24 additions and 13 deletions
|
|
@ -138,16 +138,12 @@ func writeHashedFile(fname, name string, data []byte, armored string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
type saver interface {
|
||||
Save(io.Writer) error
|
||||
}
|
||||
|
||||
func saveToFile(fname string, s saver) error {
|
||||
func saveToFile(fname string, wt io.WriterTo) error {
|
||||
f, err1 := os.Create(fname)
|
||||
if err1 != nil {
|
||||
return err1
|
||||
}
|
||||
err1 = s.Save(f)
|
||||
_, err1 = wt.WriteTo(f)
|
||||
err2 := f.Close()
|
||||
if err1 != nil {
|
||||
return err1
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ func doTransaction(
|
|||
return err
|
||||
}
|
||||
|
||||
if err := pmd.Save(newMetaFile); err != nil {
|
||||
if _, err := pmd.WriteTo(newMetaFile); err != nil {
|
||||
newMetaFile.Close()
|
||||
os.Remove(newMetaName)
|
||||
os.RemoveAll(newDir)
|
||||
|
|
|
|||
|
|
@ -420,11 +420,24 @@ func NewProviderMetadataDomain(domain string, tlps []TLPLabel) *ProviderMetadata
|
|||
return pm
|
||||
}
|
||||
|
||||
// Save saves a metadata provider to a writer.
|
||||
func (pmd *ProviderMetadata) Save(w io.Writer) error {
|
||||
type nWriter struct {
|
||||
io.Writer
|
||||
n int64
|
||||
}
|
||||
|
||||
func (nw *nWriter) Write(p []byte) (int, error) {
|
||||
n, err := nw.Write(p)
|
||||
nw.n += int64(n)
|
||||
return n, err
|
||||
}
|
||||
|
||||
// WriteTo saves a metadata provider to a writer.
|
||||
func (pmd *ProviderMetadata) WriteTo(w io.Writer) (int64, error) {
|
||||
enc := json.NewEncoder(w)
|
||||
enc.SetIndent("", " ")
|
||||
return enc.Encode(pmd)
|
||||
nw := nWriter{w, 0}
|
||||
err := enc.Encode(&nw)
|
||||
return nw.n, err
|
||||
}
|
||||
|
||||
// LoadProviderMetadata loads a metadata provider from a reader.
|
||||
|
|
|
|||
|
|
@ -68,11 +68,13 @@ func LoadROLIEFeed(r io.Reader) (*ROLIEFeed, error) {
|
|||
return &rf, nil
|
||||
}
|
||||
|
||||
// Save saves a ROLIE feed to a writer.
|
||||
func (rf *ROLIEFeed) Save(w io.Writer) error {
|
||||
// WriteTo saves a ROLIE feed to a writer.
|
||||
func (rf *ROLIEFeed) WriteTo(w io.Writer) (int64, error) {
|
||||
enc := json.NewEncoder(w)
|
||||
enc.SetIndent("", " ")
|
||||
return enc.Encode(rf)
|
||||
nw := nWriter{w, 0}
|
||||
err := enc.Encode(&nw)
|
||||
return nw.n, err
|
||||
}
|
||||
|
||||
// EntryByID looks up an entry by its ID.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue