(container, containerArg, distroCLI, imageCLI, releaseCLI string)
| 445 | } |
| 446 | |
| 447 | func resolveContainerAndImageNames(container, containerArg, distroCLI, imageCLI, releaseCLI string) ( |
| 448 | string, string, string, error, |
| 449 | ) { |
| 450 | container, image, release, err := utils.ResolveContainerAndImageNames(container, |
| 451 | distroCLI, |
| 452 | imageCLI, |
| 453 | releaseCLI) |
| 454 | |
| 455 | if err != nil { |
| 456 | var errContainer *utils.ContainerError |
| 457 | var errDistro *utils.DistroError |
| 458 | var errImage *utils.ImageError |
| 459 | var errParseRelease *utils.ParseReleaseError |
| 460 | |
| 461 | if errors.As(err, &errContainer) { |
| 462 | if errors.Is(err, utils.ErrContainerNameInvalid) { |
| 463 | if containerArg == "" { |
| 464 | panicMsg := fmt.Sprintf("unexpected %T without containerArg: %s", err, err) |
| 465 | panic(panicMsg) |
| 466 | } |
| 467 | |
| 468 | err := createErrorInvalidContainer(containerArg) |
| 469 | return "", "", "", err |
| 470 | } else if errors.Is(err, utils.ErrContainerNameFromImageInvalid) { |
| 471 | err := createErrorInvalidImageForContainerName(errContainer.Container) |
| 472 | return "", "", "", err |
| 473 | } else { |
| 474 | panicMsg := fmt.Sprintf("unexpected %T: %s", err, err) |
| 475 | panic(panicMsg) |
| 476 | } |
| 477 | } else if errors.As(err, &errDistro) { |
| 478 | if errors.Is(err, utils.ErrDistroUnsupported) { |
| 479 | err := createErrorInvalidDistro(errDistro.Distro) |
| 480 | return "", "", "", err |
| 481 | } else if errors.Is(err, utils.ErrDistroWithoutRelease) { |
| 482 | err := createErrorDistroWithoutRelease(errDistro.Distro) |
| 483 | return "", "", "", err |
| 484 | } else { |
| 485 | panicMsg := fmt.Sprintf("unexpected %T: %s", err, err) |
| 486 | panic(panicMsg) |
| 487 | } |
| 488 | } else if errors.As(err, &errImage) { |
| 489 | if errors.Is(err, utils.ErrImageWithoutBasename) { |
| 490 | err := createErrorInvalidImageWithoutBasename() |
| 491 | return "", "", "", err |
| 492 | } else { |
| 493 | panicMsg := fmt.Sprintf("unexpected %T: %s", err, err) |
| 494 | panic(panicMsg) |
| 495 | } |
| 496 | } else if errors.As(err, &errParseRelease) { |
| 497 | err := createErrorInvalidRelease(errParseRelease.Hint) |
| 498 | return "", "", "", err |
| 499 | } else { |
| 500 | return "", "", "", err |
| 501 | } |
| 502 | } |
| 503 | |
| 504 | return container, image, release, nil |
no test coverage detected
searching dependent graphs…