mirror of
https://github.com/gocsaf/csaf.git
synced 2025-12-22 11:55:40 +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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type saver interface {
|
func saveToFile(fname string, wt io.WriterTo) error {
|
||||||
Save(io.Writer) error
|
|
||||||
}
|
|
||||||
|
|
||||||
func saveToFile(fname string, s saver) error {
|
|
||||||
f, err1 := os.Create(fname)
|
f, err1 := os.Create(fname)
|
||||||
if err1 != nil {
|
if err1 != nil {
|
||||||
return err1
|
return err1
|
||||||
}
|
}
|
||||||
err1 = s.Save(f)
|
_, err1 = wt.WriteTo(f)
|
||||||
err2 := f.Close()
|
err2 := f.Close()
|
||||||
if err1 != nil {
|
if err1 != nil {
|
||||||
return err1
|
return err1
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ func doTransaction(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := pmd.Save(newMetaFile); err != nil {
|
if _, err := pmd.WriteTo(newMetaFile); err != nil {
|
||||||
newMetaFile.Close()
|
newMetaFile.Close()
|
||||||
os.Remove(newMetaName)
|
os.Remove(newMetaName)
|
||||||
os.RemoveAll(newDir)
|
os.RemoveAll(newDir)
|
||||||
|
|
|
||||||
|
|
@ -420,11 +420,24 @@ func NewProviderMetadataDomain(domain string, tlps []TLPLabel) *ProviderMetadata
|
||||||
return pm
|
return pm
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save saves a metadata provider to a writer.
|
type nWriter struct {
|
||||||
func (pmd *ProviderMetadata) Save(w io.Writer) error {
|
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 := json.NewEncoder(w)
|
||||||
enc.SetIndent("", " ")
|
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.
|
// LoadProviderMetadata loads a metadata provider from a reader.
|
||||||
|
|
|
||||||
|
|
@ -68,11 +68,13 @@ func LoadROLIEFeed(r io.Reader) (*ROLIEFeed, error) {
|
||||||
return &rf, nil
|
return &rf, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save saves a ROLIE feed to a writer.
|
// WriteTo saves a ROLIE feed to a writer.
|
||||||
func (rf *ROLIEFeed) Save(w io.Writer) error {
|
func (rf *ROLIEFeed) WriteTo(w io.Writer) (int64, error) {
|
||||||
enc := json.NewEncoder(w)
|
enc := json.NewEncoder(w)
|
||||||
enc.SetIndent("", " ")
|
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.
|
// EntryByID looks up an entry by its ID.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue