client: take localdirs as argument
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
parent
b5e2ba63c6
commit
cdcb09126b
@ -75,7 +75,7 @@ func New(ctx context.Context, host string, cfg Config) (*Client, error) {
|
|||||||
type DoFunc func(context.Context, solver.Solver) error
|
type DoFunc func(context.Context, solver.Solver) error
|
||||||
|
|
||||||
// FIXME: return completed *Route, instead of *compiler.Value
|
// FIXME: return completed *Route, instead of *compiler.Value
|
||||||
func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, fn DoFunc) error {
|
func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, localdirs map[string]string, fn DoFunc) error {
|
||||||
lg := log.Ctx(ctx)
|
lg := log.Ctx(ctx)
|
||||||
eg, gctx := errgroup.WithContext(ctx)
|
eg, gctx := errgroup.WithContext(ctx)
|
||||||
|
|
||||||
@ -90,13 +90,13 @@ func (c *Client) Do(ctx context.Context, pctx *plancontext.Context, fn DoFunc) e
|
|||||||
|
|
||||||
// Spawn build function
|
// Spawn build function
|
||||||
eg.Go(func() error {
|
eg.Go(func() error {
|
||||||
return c.buildfn(gctx, pctx, fn, events)
|
return c.buildfn(gctx, pctx, localdirs, fn, events)
|
||||||
})
|
})
|
||||||
|
|
||||||
return eg.Wait()
|
return eg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFunc, ch chan *bk.SolveStatus) error {
|
func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, localdirs map[string]string, fn DoFunc, ch chan *bk.SolveStatus) error {
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
|
|
||||||
// Close output channel
|
// Close output channel
|
||||||
@ -111,11 +111,6 @@ func (c *Client) buildfn(ctx context.Context, pctx *plancontext.Context, fn DoFu
|
|||||||
// buildkit auth provider (registry)
|
// buildkit auth provider (registry)
|
||||||
auth := solver.NewRegistryAuthProvider()
|
auth := solver.NewRegistryAuthProvider()
|
||||||
|
|
||||||
localdirs := map[string]string{}
|
|
||||||
for _, dir := range pctx.Directories.List() {
|
|
||||||
localdirs[dir.Path] = dir.Path
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup solve options
|
// Setup solve options
|
||||||
opts := bk.SolveOpt{
|
opts := bk.SolveOpt{
|
||||||
LocalDirs: localdirs,
|
LocalDirs: localdirs,
|
||||||
|
@ -198,7 +198,7 @@ var computeCmd = &cobra.Command{
|
|||||||
lg.Fatal().Msg("unable to create environment")
|
lg.Fatal().Msg("unable to create environment")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
// check that all inputs are set
|
// check that all inputs are set
|
||||||
checkInputs(ctx, env)
|
checkInputs(ctx, env)
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ var editCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
cl := common.NewClient(ctx)
|
cl := common.NewClient(ctx)
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
// check for cue errors by scanning all the inputs
|
// check for cue errors by scanning all the inputs
|
||||||
_, err := env.ScanInputs(ctx, true)
|
_, err := env.ScanInputs(ctx, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -47,7 +47,7 @@ var listCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
cl := common.NewClient(ctx)
|
cl := common.NewClient(ctx)
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
inputs, err := env.ScanInputs(ctx, false)
|
inputs, err := env.ScanInputs(ctx, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -59,7 +59,7 @@ func updateEnvironmentInput(ctx context.Context, cmd *cobra.Command, target stri
|
|||||||
}
|
}
|
||||||
|
|
||||||
cl := common.NewClient(ctx)
|
cl := common.NewClient(ctx)
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
// the inputs are set, check for cue errors by scanning all the inputs
|
// the inputs are set, check for cue errors by scanning all the inputs
|
||||||
_, err := env.ScanInputs(ctx, true)
|
_, err := env.ScanInputs(ctx, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -46,7 +46,7 @@ var listCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
cl := common.NewClient(ctx)
|
cl := common.NewClient(ctx)
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
return ListOutputs(ctx, env, true)
|
return ListOutputs(ctx, env, true)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -89,8 +89,7 @@ func Execute() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if len(os.Args) > 1 {
|
if len(os.Args) > 1 {
|
||||||
tr := otel.Tracer("cmd")
|
ctx, span = otel.Tracer("dagger").Start(ctx, os.Args[1])
|
||||||
ctx, span = tr.Start(ctx, os.Args[1])
|
|
||||||
// Record the action
|
// Record the action
|
||||||
span.AddEvent("command", trace.WithAttributes(
|
span.AddEvent("command", trace.WithAttributes(
|
||||||
attribute.String("args", strings.Join(os.Args, " ")),
|
attribute.String("args", strings.Join(os.Args, " ")),
|
||||||
|
@ -66,7 +66,7 @@ var upCmd = &cobra.Command{
|
|||||||
lg.Fatal().Msg("unable to create environment")
|
lg.Fatal().Msg("unable to create environment")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = cl.Do(ctx, env.Context(), func(ctx context.Context, s solver.Solver) error {
|
err = cl.Do(ctx, env.Context(), env.Context().Directories.Paths(), func(ctx context.Context, s solver.Solver) error {
|
||||||
// check that all inputs are set
|
// check that all inputs are set
|
||||||
if err := checkInputs(ctx, env); err != nil {
|
if err := checkInputs(ctx, env); err != nil {
|
||||||
return err
|
return err
|
||||||
|
Reference in New Issue
Block a user