in lib/ec2macosinit/instancehistory.go [98:137]
func (c *InitConfig) WriteHistoryFile() (err error) {
history := History{
InstanceID: c.IMDS.InstanceID,
RunTime: time.Now(),
Version: historyVersion,
}
// Copy relevant fields from InitConfig to History struct
for _, p := range c.ModulesByPriority {
for _, m := range p {
history.ModuleHistories = append(
history.ModuleHistories,
ModuleHistory{
Key: m.generateHistoryKey(),
Success: m.Success,
},
)
}
}
// Marshal to JSON
historyBytes, err := json.Marshal(history)
if err != nil {
return fmt.Errorf("ec2macosinit: unable to write history file: %w", err)
}
// Ensure the path exists and create it if it doesn't
err = c.CreateDirectories()
if err != nil {
return fmt.Errorf("ec2macosinit: unable to write history file: :%w", err)
}
// Write history JSON file
path := filepath.Join(c.HistoryPath, c.IMDS.InstanceID, c.HistoryFilename)
err = safeWrite(path, historyBytes)
if err != nil {
return fmt.Errorf("ec2macosinit: unable to write history file: %w", err)
}
return nil
}