func()

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
}