mirror of
https://github.com/crowdsecurity/crowdsec.git
synced 2025-05-10 20:05:55 +02:00
Windows Support (#1159)
This commit is contained in:
parent
a49b023a28
commit
0449ec1868
100 changed files with 3401 additions and 437 deletions
19
scripts/check_go_version.ps1
Normal file
19
scripts/check_go_version.ps1
Normal file
|
@ -0,0 +1,19 @@
|
|||
##This must be called with $(MINIMUM_SUPPORTED_GO_MAJOR_VERSION) $(MINIMUM_SUPPORTED_GO_MINOR_VERSION) in this order
|
||||
$min_major=$args[0]
|
||||
$min_minor=$args[1]
|
||||
$goversion = (go env GOVERSION).replace("go","").split(".")
|
||||
$goversion_major=$goversion[0]
|
||||
$goversion_minor=$goversion[1]
|
||||
$err_msg="Golang version $goversion_major.$goversion_minor is not supported, please use least $min_major.$min_minor"
|
||||
|
||||
if ( $goversion_major -gt $min_major ) {
|
||||
exit 0;
|
||||
}
|
||||
elseif ($goversion_major -lt $min_major) {
|
||||
Write-Output $err_msg;
|
||||
exit 1;
|
||||
}
|
||||
elseif ($goversion_minor -lt $min_minor) {
|
||||
Write-Output $(GO_VERSION_VALIDATION_ERR_MSG);
|
||||
exit 1;
|
||||
}
|
90
scripts/test_env.ps1
Normal file
90
scripts/test_env.ps1
Normal file
|
@ -0,0 +1,90 @@
|
|||
#this is is straight up conversion of test_env.sh, not pretty but does the job
|
||||
|
||||
param (
|
||||
[string]$base = ".\tests",
|
||||
[switch]$help = $false
|
||||
)
|
||||
|
||||
function show_help() {
|
||||
Write-Output ".\test_env.ps1 -d tests #creates test env in .\tests"
|
||||
}
|
||||
|
||||
function create_arbo() {
|
||||
$null = New-Item -ItemType Directory $data_dir
|
||||
$null = New-Item -ItemType Directory $log_dir
|
||||
$null = New-Item -ItemType Directory $config_dir
|
||||
$null = New-Item -ItemType Directory $parser_dir
|
||||
$null = New-Item -ItemType Directory $parser_s00
|
||||
$null = New-Item -ItemType Directory $parser_s01
|
||||
$null = New-Item -ItemType Directory $parser_s02
|
||||
$null = New-Item -ItemType Directory $scenarios_dir
|
||||
$null = New-Item -ItemType Directory $postoverflows_dir
|
||||
$null = New-Item -ItemType Directory $cscli_dir
|
||||
$null = New-Item -ItemType Directory $hub_dir
|
||||
$null = New-Item -ItemType Directory $config_dir\$notif_dir
|
||||
$null = New-Item -ItemType Directory $base\$plugins_dir
|
||||
}
|
||||
|
||||
function copy_file() {
|
||||
$null = Copy-Item ".\config\profiles.yaml" $config_dir
|
||||
$null = Copy-Item ".\config\simulation.yaml" $config_dir
|
||||
$null = Copy-Item ".\cmd\crowdsec\crowdsec.exe" $base
|
||||
$null = Copy-Item ".\cmd\crowdsec-cli\cscli.exe" $base
|
||||
$null = Copy-Item -Recurse ".\config\patterns" $config_dir
|
||||
$null = Copy-Item ".\config\acquis.yaml" $config_dir
|
||||
$null = New-Item -ItemType File $config_dir\local_api_credentials.yaml
|
||||
$null = New-Item -ItemType File $config_dir\online_api_credentials.yaml
|
||||
#envsubst < "./config/dev.yaml" > $BASE/dev.yaml
|
||||
Copy-Item .\config\dev.yaml $base\dev.yaml
|
||||
$plugins | ForEach-Object {
|
||||
Copy-Item $plugins_dir\$notif_dir\$_\notification-$_.exe $base\$plugins_dir\notification-$_.exe
|
||||
Copy-Item $plugins_dir\$notif_dir\$_\$_.yaml $config_dir\$notif_dir\$_.yaml
|
||||
}
|
||||
}
|
||||
|
||||
function setup() {
|
||||
& $base\cscli.exe -c "$config_file" hub update
|
||||
& $base\cscli.exe -c "$config_file" collections install crowdsecurity/linux crowdsecurity/windows
|
||||
}
|
||||
|
||||
function setup_api() {
|
||||
& $base\cscli.exe -c "$config_file" machines add test -p testpassword -f $config_dir\local_api_credentials.yaml --force
|
||||
}
|
||||
|
||||
if ($help) {
|
||||
show_help
|
||||
exit 0;
|
||||
}
|
||||
|
||||
$null = New-Item -ItemType Directory $base
|
||||
|
||||
$base=(Resolve-Path $base).Path
|
||||
$data_dir="$base\data"
|
||||
$log_dir="$base\logs\"
|
||||
$config_dir="$base\config"
|
||||
$config_file="$base\dev.yaml"
|
||||
$cscli_dir="$config_dir\crowdsec-cli"
|
||||
$parser_dir="$config_dir\parsers"
|
||||
$parser_s00="$parser_dir\s00-raw"
|
||||
$parser_s01="$parser_dir\s01-parse"
|
||||
$parser_s02="$parser_dir\s02-enrich"
|
||||
$scenarios_dir="$config_dir\scenarios"
|
||||
$postoverflows_dir="$config_dir\postoverflows"
|
||||
$hub_dir="$config_dir\hub"
|
||||
$plugins=@("http", "slack", "splunk")
|
||||
$plugins_dir="plugins"
|
||||
$notif_dir="notifications"
|
||||
|
||||
|
||||
Write-Output "Creating test arbo in $base"
|
||||
create_arbo
|
||||
Write-Output "Arbo created"
|
||||
Write-Output "Copying files"
|
||||
copy_file
|
||||
Write-Output "Files copied"
|
||||
Write-Output "Setting up configuration"
|
||||
$cur_path=$pwd
|
||||
Set-Location $base
|
||||
setup_api
|
||||
setup
|
||||
Set-Location $cur_path
|
Loading…
Add table
Add a link
Reference in a new issue