MCPcopy
hub / github.com/crowdsecurity/crowdsec / inspect

Method inspect

cmd/crowdsec-cli/cliitem/cmdinspect.go:25–79  ·  view source on GitHub ↗
(ctx context.Context, args []string, url string, diff bool, rev bool, noMetrics bool)

Source from the content-addressed store, hash-verified

23)
24
25func (cli *cliItem) inspect(ctx context.Context, args []string, url string, diff bool, rev bool, noMetrics bool) error {
26 cfg := cli.cfg()
27
28 if rev && !diff {
29 return errors.New("--rev can only be used with --diff")
30 }
31
32 if url != "" {
33 cfg.Cscli.PrometheusUrl = url
34 }
35
36 var (
37 contentProvider cwhub.ContentProvider
38 err error
39 )
40
41 if diff {
42 contentProvider, err = require.HubDownloader(ctx, cfg)
43 if err != nil {
44 return err
45 }
46 }
47
48 hub, err := require.Hub(cfg, log.StandardLogger())
49 if err != nil {
50 return err
51 }
52
53 for _, name := range args {
54 item := hub.GetItem(cli.name, name)
55 if item == nil {
56 return fmt.Errorf("can't find '%s' in %s", name, cli.name)
57 }
58
59 if diff {
60 fmt.Fprintln(os.Stdout, cli.whyTainted(ctx, hub, contentProvider, item, rev))
61
62 continue
63 }
64
65 wantMetrics := !noMetrics && item.State.IsInstalled()
66
67 if err := inspectItem(ctx, hub, item, wantMetrics, cfg.Cscli.Output, cfg.Cscli.PrometheusUrl, cfg.Cscli.Color); err != nil {
68 return err
69 }
70
71 if cli.inspectDetail != nil {
72 if err := cli.inspectDetail(item); err != nil {
73 return err
74 }
75 }
76 }
77
78 return nil
79}
80
81// return the diff between the installed version and the latest version
82func (*cliItem) itemDiff(ctx context.Context, item cwhub.Item, contentProvider cwhub.ContentProvider, reverse bool) (string, error) {

Callers 1

newInspectCmdMethod · 0.95

Calls 8

whyTaintedMethod · 0.95
HubDownloaderFunction · 0.92
HubFunction · 0.92
inspectItemFunction · 0.85
cfgMethod · 0.80
StandardLoggerMethod · 0.80
GetItemMethod · 0.80
IsInstalledMethod · 0.80

Tested by

no test coverage detected