.cache used for credits

This commit is contained in:
2026-05-07 09:04:20 +02:00
parent f6bb4fe3d7
commit fa3dde4293
3 changed files with 41 additions and 8 deletions
+22 -2
View File
@@ -48,6 +48,7 @@ type preparedMusicAssets struct {
Generated []assetResource
SkipSourceRel map[string]struct{}
Artifacts []string
TempRoots []string
}
type musicMetadata struct {
@@ -125,7 +126,8 @@ func prepareMusicAssets(p *project.Project) (*preparedMusicAssets, error) {
sort.Strings(dirs)
generatedByDir := make(map[string][]creditsEntry)
stageRoot := filepath.Join(p.BuildDir(), ".cache", "music")
stageRoot := filepath.Join(p.Root, ".cache", "music")
result.TempRoots = append(result.TempRoots, stageRoot)
ffmpegPath, err := resolveFFmpegBinary()
if err != nil {
@@ -227,7 +229,10 @@ func prepareMusicAssets(p *project.Project) (*preparedMusicAssets, error) {
}
func writeCreditsArtifacts(p *project.Project, generatedByDir map[string][]creditsEntry) ([]string, error) {
creditsRoot := filepath.Join(p.BuildDir(), "credits")
creditsRoot := filepath.Join(p.Root, ".cache", "credits")
if err := os.RemoveAll(creditsRoot); err != nil {
return nil, fmt.Errorf("reset credits dir: %w", err)
}
if err := os.MkdirAll(creditsRoot, 0o755); err != nil {
return nil, fmt.Errorf("create credits dir: %w", err)
}
@@ -310,6 +315,21 @@ func writeCreditsArtifacts(p *project.Project, generatedByDir map[string][]credi
return artifacts, nil
}
func cleanupPreparedMusicAssets(prepared *preparedMusicAssets) error {
if prepared == nil {
return nil
}
for _, root := range prepared.TempRoots {
if strings.TrimSpace(root) == "" {
continue
}
if err := os.RemoveAll(root); err != nil {
return fmt.Errorf("remove temporary music artifact root %s: %w", root, err)
}
}
return nil
}
func parseCreditsOverlay(path string) (creditsOverlay, error) {
entries, err := parseCreditsMarkdown(path)
if err != nil {