51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package runner
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/projectdiscovery/gologger"
|
|
)
|
|
|
|
// validateOptions validates the configuration options passed
|
|
func (options *Options) validateOptions() error {
|
|
// Check if domain, list of domains, or stdin info was provided.
|
|
// If none was provided, then return.
|
|
if options.Domain == "" && options.DomainsFile == "" && !options.Stdin {
|
|
return errors.New("no input list provided")
|
|
}
|
|
|
|
// Both verbose and silent flags were used
|
|
if options.Verbose && options.Silent {
|
|
return errors.New("both verbose and silent mode specified")
|
|
}
|
|
|
|
// Validate threads and options
|
|
if options.Threads == 0 {
|
|
return errors.New("threads cannot be zero")
|
|
}
|
|
if options.Timeout == 0 {
|
|
return errors.New("timeout cannot be zero")
|
|
}
|
|
|
|
// Always remove wildcard with hostip
|
|
if options.HostIP && !options.RemoveWildcard {
|
|
return errors.New("hostip flag must be used with RemoveWildcard option")
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// configureOutput configures the output on the screen
|
|
func (options *Options) configureOutput() {
|
|
// If the user desires verbose output, show verbose output
|
|
if options.Verbose {
|
|
gologger.MaxLevel = gologger.Verbose
|
|
}
|
|
if options.NoColor {
|
|
gologger.UseColors = false
|
|
}
|
|
if options.Silent {
|
|
gologger.MaxLevel = gologger.Silent
|
|
}
|
|
}
|