in internal/status/status.go [46:69]
func SaveStatusReport(statusFolder string, extName string, seqNo int, rootStatusJson []byte) error {
fn := fmt.Sprintf("%d.status", seqNo)
// Support multiconfig extensions where status file name should be: extName.seqNo.status
if extName != "" {
fn = extName + "." + fn
}
path := filepath.Join(statusFolder, fn)
tmpFile, err := os.CreateTemp(statusFolder, fn)
if err != nil {
return fmt.Errorf("status: failed to create temporary file: %v", err)
}
tmpFile.Close()
if err := os.WriteFile(tmpFile.Name(), rootStatusJson, 0644); err != nil {
return fmt.Errorf("status: failed to path=%s error=%v", tmpFile.Name(), err)
}
if err := os.Rename(tmpFile.Name(), path); err != nil {
return fmt.Errorf("status: failed to move to path=%s error=%v", path, err)
}
return nil
}