package cli import ( "errors" "flag" "fmt" "io" "os" "werkdock/internal/store" ) // rmiCmd is `docker rmi IMAGE...`: every image named is removed, a // failure is reported per image and the others are still tried, as // docker does. Exit 125 if any failed. func rmiCmd(args []string) int { fs := flag.NewFlagSet("rmi", flag.ContinueOnError) fs.SetOutput(io.Discard) if err := fs.Parse(args); err != nil { return fail(err) } if len(fs.Args()) == 0 { return fail(errors.New("rmi needs an IMAGE (werkdock rmi IMAGE...)")) } st, err := store.Default() if err != nil { return fail(err) } code := 0 for _, reference := range fs.Args() { removed, err := st.Remove(reference) if err != nil { fmt.Fprintf(os.Stderr, "werkdock: %v\n", err) code = exitCLIError continue } fmt.Printf("Untagged: %s\n", removed) } return code }