diff options
Diffstat (limited to 'internal/rosa/state.go')
| -rw-r--r-- | internal/rosa/state.go | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 5c822426..888378d8 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -932,6 +932,7 @@ func (ctx *evalContext) pf( output pkg.Artifact sourceA any helper Helper + overlay string inputs, runtimes, extra azalea.Array ) @@ -960,6 +961,7 @@ func (ctx *evalContext) pf( k("inputs"): &inputs, k("runtime"): &runtimes, k("extra"): &extra, + k("overlay"): &overlay, }); err != nil { return } @@ -991,13 +993,26 @@ func (ctx *evalContext) pf( }) } - for _, h := range extraH { - _, a := ctx.t.MustLoad(h) - attr.Paths = append(attr.Paths, pkg.Path( - AbsUsrSrc.Append("extra", h.String()), - attr.Writable, - a, - )) + if overlay == "" { + for _, h := range extraH { + _, a := ctx.t.MustLoad(h) + attr.Paths = append(attr.Paths, pkg.Path( + AbsUsrSrc.Append("extra", h.String()), + attr.Writable, + a, + )) + } + } else { + var o pkg.ExecPath + if o.P, err = check.NewAbs(overlay); err != nil { + o.P = AbsUsrSrc.Append("extra", overlay) + } + o.A = make([]pkg.Artifact, len(extraH)) + for i, h := range extraH { + _, a := ctx.t.MustLoad(h) + o.A[i] = a + } + attr.Paths = append(attr.Paths, o) } for _, pair := range files { |
