MCPcopy Index your code
hub / github.com/VirusTotal/vt-cli / NewScanFileCmd

Function NewScanFileCmd

cmd/scan.go:153–203  ·  view source on GitHub ↗

NewScanFileCmd returns a new instance of the 'scan file' command.

()

Source from the content-addressed store, hash-verified

151
152// NewScanFileCmd returns a new instance of the 'scan file' command.
153func NewScanFileCmd() *cobra.Command {
154 cmd := &cobra.Command{
155 Use: "file [[dir] | [file]...]",
156 Short: "Scan one or more files",
157 Long: scanFileCmdHelp,
158 Example: scanFileCmdExample,
159 Args: cobra.MinimumNArgs(1),
160
161 RunE: func(cmd *cobra.Command, args []string) error {
162 c := utils.NewCoordinator(viper.GetInt("threads"))
163 var argReader utils.StringReader
164 if len(args) == 1 && args[0] == "-" {
165 argReader = utils.NewStringIOReader(os.Stdin)
166 } else if len(args) == 1 && utils.IsDir(args[0]) {
167 recursive := viper.GetBool("recursive")
168 maxDepth := viper.GetInt("maxDepth")
169 argReader, _ = utils.NewFileDirReader(args[0], recursive, maxDepth)
170 } else {
171 argReader = utils.NewStringArrayReader(args)
172 }
173 client, err := NewAPIClient()
174 if err != nil {
175 return err
176 }
177 p, err := NewPrinter(cmd)
178 if err != nil {
179 return err
180 }
181 s := &fileScanner{
182 scanner: client.NewFileScanner(),
183 showInVT: viper.GetBool("open"),
184 waitForCompletion: viper.GetBool("wait"),
185 password: viper.GetString("password"),
186 printer: p,
187 cli: client}
188 c.DoWithStringsFromReader(s, argReader)
189 return nil
190 },
191 }
192
193 addRecursive(cmd.Flags())
194 addMaxDepth(cmd.Flags())
195 addThreadsFlag(cmd.Flags())
196 addOpenInVTFlag(cmd.Flags())
197 addPasswordFlag(cmd.Flags())
198 addWaitForCompletionFlag(cmd.Flags())
199 addIncludeExcludeFlags(cmd.Flags())
200 cmd.MarkZshCompPositionalArgumentFile(1)
201
202 return cmd
203}
204
205type urlScanner struct {
206 scanner *vt.URLScanner

Callers 1

NewScanCmdFunction · 0.85

Calls 15

NewCoordinatorFunction · 0.92
NewStringIOReaderFunction · 0.92
IsDirFunction · 0.92
NewFileDirReaderFunction · 0.92
NewStringArrayReaderFunction · 0.92
addRecursiveFunction · 0.85
addMaxDepthFunction · 0.85
addThreadsFlagFunction · 0.85
addOpenInVTFlagFunction · 0.85
addPasswordFlagFunction · 0.85
addWaitForCompletionFlagFunction · 0.85

Tested by

no test coverage detected