Files
miandmhoennig 4cf7604e8f Pull (#2)
Co-authored-by: mhoennig <michael@hoennig.de>
Reviewed-on: #2
2026-09-10 19:26:55 +02:00

41 lines
860 B
Go

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
}