Skip to content

Commit

Permalink
Merge pull request #1128 from crazy-max/rm
Browse files Browse the repository at this point in the history
rm: display removed builder and disallow removing context builders
  • Loading branch information
tonistiigi authored May 24, 2022
2 parents 81ce766 + 54a2a0c commit 35f4268
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 11 deletions.
4 changes: 2 additions & 2 deletions cmd/buildx/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,9 @@ func main() {
s.Print(cmd.Err())
}
if debug.IsEnabled() {
fmt.Fprintf(cmd.Err(), "error: %+v", stack.Formatter(err))
fmt.Fprintf(cmd.Err(), "ERROR: %+v", stack.Formatter(err))
} else {
fmt.Fprintf(cmd.Err(), "error: %v\n", err)
fmt.Fprintf(cmd.Err(), "ERROR: %v\n", err)
}

os.Exit(1)
Expand Down
31 changes: 22 additions & 9 deletions commands/rm.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package commands

import (
"context"
"fmt"
"time"

"github.com/docker/buildx/store"
Expand Down Expand Up @@ -43,30 +44,41 @@ func runRm(dockerCli command.Cli, in rmOptions) error {
return rmAllInactive(ctx, txn, dockerCli, in)
}

var ng *store.NodeGroup
if in.builder != "" {
ng, err := storeutil.GetNodeGroup(txn, dockerCli, in.builder)
ng, err = storeutil.GetNodeGroup(txn, dockerCli, in.builder)
if err != nil {
return err
}
err1 := rm(ctx, dockerCli, in, ng)
if err := txn.Remove(ng.Name); err != nil {
} else {
ng, err = storeutil.GetCurrentInstance(txn, dockerCli)
if err != nil {
return err
}
return err1
}
if ng == nil {
return nil
}

ng, err := storeutil.GetCurrentInstance(txn, dockerCli)
ctxbuilders, err := dockerCli.ContextStore().List()
if err != nil {
return err
}
if ng != nil {
err1 := rm(ctx, dockerCli, in, ng)
if err := txn.Remove(ng.Name); err != nil {
return err
for _, cb := range ctxbuilders {
if ng.Driver == "docker" && len(ng.Nodes) == 1 && ng.Nodes[0].Endpoint == cb.Name {
return errors.Errorf("context builder cannot be removed, run `docker context rm %s` to remove this context", cb.Name)
}
}

err1 := rm(ctx, dockerCli, in, ng)
if err := txn.Remove(ng.Name); err != nil {
return err
}
if err1 != nil {
return err1
}

_, _ = fmt.Fprintf(dockerCli.Err(), "%s removed\n", ng.Name)
return nil
}

Expand Down Expand Up @@ -152,6 +164,7 @@ func rmAllInactive(ctx context.Context, txn *store.Txn, dockerCli command.Cli, i
if err := txn.Remove(b.ng.Name); err != nil {
return err
}
_, _ = fmt.Fprintf(dockerCli.Err(), "%s removed\n", b.ng.Name)
return rmerr
}
return nil
Expand Down

0 comments on commit 35f4268

Please sign in to comment.