rename
This commit is contained in:
parent
68b12161b2
commit
58a9bb0bc0
2 changed files with 0 additions and 155 deletions
Binary file not shown.
Before Width: | Height: | Size: 102 KiB |
|
@ -1,155 +0,0 @@
|
||||||
package config
|
|
||||||
|
|
||||||
import (
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/crowdsecurity/crowdsec/pkg/cwversion"
|
|
||||||
"github.com/crowdsecurity/crowdsec/pkg/outputs"
|
|
||||||
|
|
||||||
log "github.com/sirupsen/logrus"
|
|
||||||
"gopkg.in/yaml.v2"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Crowdwatch is the structure of the crowdsec configuration
|
|
||||||
type Crowdwatch struct {
|
|
||||||
WorkingFolder string `yaml:"working_dir,omitempty"`
|
|
||||||
DataFolder string `yaml:"data_dir,omitempty"`
|
|
||||||
ConfigFolder string `yaml:"config_dir,omitempty"`
|
|
||||||
AcquisitionFile string `yaml:"acquis_path,omitempty"`
|
|
||||||
SingleFile string //for forensic mode
|
|
||||||
SingleFileLabel string //for forensic mode
|
|
||||||
PIDFolder string `yaml:"pid_dir,omitempty"`
|
|
||||||
LogFolder string `yaml:"log_dir,omitempty"`
|
|
||||||
LogMode string `yaml:"log_mode,omitempty"` //like file, syslog or stdout ?
|
|
||||||
LogLevel log.Level `yaml:"log_level,omitempty"` //trace,debug,info,warning,error
|
|
||||||
Daemonize bool `yaml:"daemon,omitempty"` //true -> go background
|
|
||||||
Profiling bool `yaml:"profiling,omitempty"` //true -> enable runtime profiling
|
|
||||||
SQLiteFile string `yaml:"sqlite_path,omitempty"` //path to sqlite output
|
|
||||||
APIMode bool `yaml:"apimode,omitempty"` //true -> enable api push
|
|
||||||
Linter bool
|
|
||||||
Prometheus bool
|
|
||||||
HTTPListen string `yaml:"http_listen,omitempty"`
|
|
||||||
ValidatorMode string /*if present points to a specific config (for tests)*/
|
|
||||||
RestoreMode string
|
|
||||||
DumpBuckets bool
|
|
||||||
OutputConfig *outputs.OutputFactory `yaml:"plugin"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewCrowdwatchConfig create a new crowdsec configuration with default configuration
|
|
||||||
func NewCrowdwatchConfig() *Crowdwatch {
|
|
||||||
return &Crowdwatch{
|
|
||||||
LogLevel: log.InfoLevel,
|
|
||||||
Daemonize: false,
|
|
||||||
Profiling: false,
|
|
||||||
WorkingFolder: "./",
|
|
||||||
DataFolder: "./data/",
|
|
||||||
ConfigFolder: "./config/",
|
|
||||||
PIDFolder: "./",
|
|
||||||
LogFolder: "./",
|
|
||||||
LogMode: "stdout",
|
|
||||||
SQLiteFile: "./test.db",
|
|
||||||
APIMode: false,
|
|
||||||
Prometheus: false,
|
|
||||||
HTTPListen: "127.0.0.1:6060",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetOPT return flags parsed from command line
|
|
||||||
func (c *Crowdwatch) GetOPT() error {
|
|
||||||
|
|
||||||
AcquisitionFile := flag.String("acquis", "", "path to acquis.yaml")
|
|
||||||
configFile := flag.String("c", "", "configuration file")
|
|
||||||
printTrace := flag.Bool("trace", false, "VERY verbose")
|
|
||||||
printDebug := flag.Bool("debug", false, "print debug-level on stdout")
|
|
||||||
printInfo := flag.Bool("info", false, "print info-level on stdout")
|
|
||||||
printVersion := flag.Bool("version", false, "display version")
|
|
||||||
APIMode := flag.Bool("api", false, "perform pushes to api")
|
|
||||||
SQLiteMode := flag.Bool("sqlite", true, "write overflows to sqlite")
|
|
||||||
profileMode := flag.Bool("profile", false, "Enable performance profiling")
|
|
||||||
catFile := flag.String("file", "", "Process a single file in time-machine")
|
|
||||||
catFileType := flag.String("type", "", "Labels.type for file in time-machine")
|
|
||||||
daemonMode := flag.Bool("daemon", false, "Daemonize, go background, drop PID file, log to file")
|
|
||||||
testMode := flag.Bool("t", false, "only test configs")
|
|
||||||
prometheus := flag.Bool("prometheus-metrics", false, "expose http prometheus collector (see http_listen)")
|
|
||||||
validatorMode := flag.String("custom-config", "", "[dev] run a specific subset of configs parser:file.yaml,scenarios:file.yaml")
|
|
||||||
restoreMode := flag.String("restore-state", "", "[dev] restore buckets state from json file")
|
|
||||||
dumpMode := flag.Bool("dump-state", false, "[dev] Dump bucket state at the end of run.")
|
|
||||||
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
if *printVersion == true {
|
|
||||||
cwversion.Show()
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
if *catFile != "" {
|
|
||||||
if *catFileType == "" {
|
|
||||||
log.Fatalf("-file requires -type")
|
|
||||||
}
|
|
||||||
c.SingleFile = *catFile
|
|
||||||
c.SingleFileLabel = *catFileType
|
|
||||||
}
|
|
||||||
|
|
||||||
/*overriden by cfg file*/
|
|
||||||
if *configFile != "" {
|
|
||||||
rcfg, err := ioutil.ReadFile(*configFile)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("read '%s' : %s", *configFile, err)
|
|
||||||
}
|
|
||||||
if err := yaml.UnmarshalStrict(rcfg, c); err != nil {
|
|
||||||
return fmt.Errorf("parse '%s' : %s", *configFile, err)
|
|
||||||
}
|
|
||||||
if c.AcquisitionFile == "" {
|
|
||||||
c.AcquisitionFile = filepath.Clean(c.ConfigFolder + "/acquis.yaml")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if *AcquisitionFile != "" {
|
|
||||||
c.AcquisitionFile = *AcquisitionFile
|
|
||||||
}
|
|
||||||
if *dumpMode == true {
|
|
||||||
c.DumpBuckets = true
|
|
||||||
}
|
|
||||||
if *prometheus {
|
|
||||||
c.Prometheus = true
|
|
||||||
}
|
|
||||||
if *testMode {
|
|
||||||
c.Linter = true
|
|
||||||
}
|
|
||||||
if *validatorMode != "" {
|
|
||||||
c.ValidatorMode = *validatorMode
|
|
||||||
}
|
|
||||||
/*overriden by cmdline*/
|
|
||||||
if *daemonMode {
|
|
||||||
c.Daemonize = true
|
|
||||||
}
|
|
||||||
if *profileMode {
|
|
||||||
c.Profiling = true
|
|
||||||
}
|
|
||||||
if *printDebug {
|
|
||||||
c.LogLevel = log.DebugLevel
|
|
||||||
}
|
|
||||||
if *printInfo {
|
|
||||||
c.LogLevel = log.InfoLevel
|
|
||||||
}
|
|
||||||
if *printTrace {
|
|
||||||
c.LogLevel = log.TraceLevel
|
|
||||||
}
|
|
||||||
if !*SQLiteMode {
|
|
||||||
c.SQLiteFile = ""
|
|
||||||
}
|
|
||||||
if *APIMode {
|
|
||||||
c.APIMode = true
|
|
||||||
}
|
|
||||||
|
|
||||||
if *restoreMode != "" {
|
|
||||||
c.RestoreMode = *restoreMode
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue