1
0
Fork 0
mirror of https://github.com/gocsaf/csaf.git synced 2025-12-22 18:15:42 +01:00

Only write provider metadata back if it is marked as dynamic in config.

This commit is contained in:
Sascha L. Teichmann 2021-12-01 21:10:02 +01:00
parent fbe20dbf60
commit 45299f7e44
2 changed files with 32 additions and 29 deletions

View file

@ -19,15 +19,16 @@ const (
) )
type config struct { type config struct {
Key string `toml:"key"` Key string `toml:"key"`
Folder string `toml:"folder"` Folder string `toml:"folder"`
Web string `toml:"web"` Web string `toml:"web"`
TLPs []tlp `toml:"tlps"` TLPs []tlp `toml:"tlps"`
UploadSignature bool `toml:"upload_signature"` UploadSignature bool `toml:"upload_signature"`
OpenPGPURL string `toml:"openpgp_url"` OpenPGPURL string `toml:"openpgp_url"`
Domain string `toml:"domain"` Domain string `toml:"domain"`
NoPassphrase bool `toml:"no_passphrase"` NoPassphrase bool `toml:"no_passphrase"`
Publisher *csaf.Publisher `toml:"publisher"` DynamicProviderMetaData bool `toml:"dynamic_provider_metadata"`
Publisher *csaf.Publisher `toml:"publisher"`
} }
type tlp string type tlp string

View file

@ -59,29 +59,31 @@ func doTransaction(
return err return err
} }
// Write back provider metadata. // Write back provider metadata if its dynamic.
newMetaName, newMetaFile, err := mkUniqFile(metadata) if cfg.DynamicProviderMetaData {
if err != nil { newMetaName, newMetaFile, err := mkUniqFile(metadata)
os.RemoveAll(newDir) if err != nil {
return err os.RemoveAll(newDir)
} return err
}
if err := pmd.Save(newMetaFile); err != nil { if err := pmd.Save(newMetaFile); err != nil {
newMetaFile.Close() newMetaFile.Close()
os.Remove(newMetaName) os.Remove(newMetaName)
os.RemoveAll(newDir) os.RemoveAll(newDir)
return err return err
} }
if err := newMetaFile.Close(); err != nil { if err := newMetaFile.Close(); err != nil {
os.Remove(newMetaName) os.Remove(newMetaName)
os.RemoveAll(newDir) os.RemoveAll(newDir)
return err return err
} }
if err := os.Rename(newMetaName, metadata); err != nil { if err := os.Rename(newMetaName, metadata); err != nil {
os.RemoveAll(newDir) os.RemoveAll(newDir)
return err return err
}
} }
// Switch directories. // Switch directories.