| 808 | } |
| 809 | |
| 810 | func processSystem(modulesOnBuilder []dist.ModuleInfo, system dist.System, kind string) (dist.System, error) { |
| 811 | resolved := dist.System{} |
| 812 | |
| 813 | // Pre buildpacks |
| 814 | for _, bp := range system.Pre.Buildpacks { |
| 815 | var ( |
| 816 | ref dist.ModuleRef |
| 817 | err error |
| 818 | ) |
| 819 | if ref, err = resolveRef(modulesOnBuilder, bp, kind); err != nil { |
| 820 | return dist.System{}, err |
| 821 | } |
| 822 | resolved.Pre.Buildpacks = append(resolved.Pre.Buildpacks, ref) |
| 823 | } |
| 824 | |
| 825 | // Post buildpacks |
| 826 | for _, bp := range system.Post.Buildpacks { |
| 827 | var ( |
| 828 | ref dist.ModuleRef |
| 829 | err error |
| 830 | ) |
| 831 | if ref, err = resolveRef(modulesOnBuilder, bp, kind); err != nil { |
| 832 | return dist.System{}, err |
| 833 | } |
| 834 | resolved.Post.Buildpacks = append(resolved.Post.Buildpacks, ref) |
| 835 | } |
| 836 | |
| 837 | return resolved, nil |
| 838 | } |
| 839 | |
| 840 | func resolveRef(moduleList []dist.ModuleInfo, ref dist.ModuleRef, kind string) (dist.ModuleRef, error) { |
| 841 | var matching []dist.ModuleInfo |