MCPcopy
hub / github.com/slimtoolkit/slim / OnCommand

Function OnCommand

pkg/app/master/command/merge/handler.go:34–330  ·  view source on GitHub ↗

OnCommand implements the 'merge' command

(
	xc *app.ExecutionContext,
	gparams *command.GenericParams,
	cparams *CommandParams)

Source from the content-addressed store, hash-verified

32
33// OnCommand implements the 'merge' command
34func OnCommand(
35 xc *app.ExecutionContext,
36 gparams *command.GenericParams,
37 cparams *CommandParams) {
38 const cmdName = Name
39 logger := log.WithFields(log.Fields{"app": appName, "cmd": cmdName})
40
41 viChan := version.CheckAsync(gparams.CheckVersion, gparams.InContainer, gparams.IsDSImage)
42
43 cmdReport := report.NewMergeCommand(gparams.ReportLocation, gparams.InContainer)
44 cmdReport.State = cmd.StateStarted
45 cmdReport.FirstImage = cparams.FirstImage
46 cmdReport.LastImage = cparams.LastImage
47 cmdReport.UseLastImageMetadata = cparams.UseLastImageMetadata
48
49 xc.Out.State("started")
50 xc.Out.Info("params",
51 ovars{
52 "image.first": cparams.FirstImage,
53 "image.last": cparams.LastImage,
54 "use.last.image.metadata": cparams.UseLastImageMetadata,
55 "output.tags": cparams.OutputTags,
56 })
57
58 client, err := dockerclient.New(gparams.ClientConfig)
59 if err == dockerclient.ErrNoDockerInfo {
60 exitMsg := "missing Docker connection info"
61 if gparams.InContainer && gparams.IsDSImage {
62 exitMsg = "make sure to pass the Docker connect parameters to the slim app container"
63 }
64
65 xc.Out.Info("docker.connect.error",
66 ovars{
67 "message": exitMsg,
68 })
69
70 exitCode := command.ECTCommon | command.ECCNoDockerConnectInfo
71 xc.Out.State("exited",
72 ovars{
73 "exit.code": exitCode,
74 "version": v.Current(),
75 "location": fsutil.ExeDir(),
76 })
77 xc.Exit(exitCode)
78 }
79 xc.FailOn(err)
80
81 if gparams.Debug {
82 version.Print(xc, cmdName, logger, client, false, gparams.InContainer, gparams.IsDSImage)
83 }
84
85 //////////////////////////////////////////////////
86 ensureImage := func(name string, imageRef string, cr *report.MergeCommand) string {
87 imageInspector, err := image.NewInspector(client, imageRef)
88 xc.FailOn(err)
89
90 noImage, err := imageInspector.NoImage()
91 errutil.FailOn(err)

Callers 1

cli.goFile · 0.70

Calls 15

NoImageMethod · 0.95
NewMergeCommandFunction · 0.92
NewFunction · 0.92
ExeDirFunction · 0.92
NewInspectorFunction · 0.92
FailOnFunction · 0.92
NewFunction · 0.92
ExistsFunction · 0.92
IsRegularFileFunction · 0.92
IsTarFileFunction · 0.92
NewFunction · 0.92

Tested by

no test coverage detected