func Load()

in internal/changelog/fragment/file.go [31:59]


func Load(fs afero.Fs, path string) (File, error) {
	f := File{
		fs: fs,

		Name:     filepath.Base(path),
		Fragment: Fragment{},
	}

	ts, err := gettimestamp(f.Name)
	if err != nil {
		return f, fmt.Errorf("cannot extract timestamp from file name: %w", err)
	}

	f.Timestamp = ts
	f.Title = gettitle(f.Name)

	content, err := getcontent(f.fs, path)
	if err != nil {
		return f, err
	}

	f.Content = content

	if err := yaml.Unmarshal(content, &f.Fragment); err != nil {
		return f, fmt.Errorf("cannot unmarshal file: %w", err)
	}

	return f, nil
}