MCPcopy Index your code
hub / github.com/docker-exec/dexec / ImageFromOptions

Function ImageFromOptions

dexec/dexec.go:28–55  ·  view source on GitHub ↗

ImageFromOptions returns an image from a set of options.

(options map[cli.OptionType][]string)

Source from the content-addressed store, hash-verified

26
27// ImageFromOptions returns an image from a set of options.
28func ImageFromOptions(options map[cli.OptionType][]string) (image *Image, err error) {
29 useExtension := len(options[cli.Extension]) == 1
30 useImage := len(options[cli.Image]) == 1
31
32 if useStdin := len(options[cli.Source]) == 0; useStdin {
33 if useExtension {
34 image, err = LookupImageByExtension(options[cli.Extension][0])
35 } else if useImage {
36 overrideImage, err := LookupImageByOverride(options[cli.Image][0], "unknown")
37 if err != nil {
38 return nil, err
39 }
40 image, err = LookupImageByName(overrideImage.Image)
41 image.Version = overrideImage.Version
42 } else {
43 err = fmt.Errorf("STDIN requested but no extension or image supplied")
44 }
45 } else {
46 if extension := util.ExtractFileExtension(options[cli.Source][0]); useExtension {
47 image, err = LookupImageByExtension(options[cli.Extension][0])
48 } else if useImage {
49 image, err = LookupImageByOverride(options[cli.Image][0], extension)
50 } else {
51 image, err = LookupImageByExtension(extension)
52 }
53 }
54 return image, err
55}
56
57// BuildVolumeArgs takes a base path and returns an array of Docker volume
58// arguments. The array takes the form {"-v", "/foo:/bar:[rw|ro]", ...} for

Callers

nothing calls this directly

Calls 3

LookupImageByExtensionFunction · 0.85
LookupImageByOverrideFunction · 0.85
LookupImageByNameFunction · 0.85

Tested by

no test coverage detected