58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#! /usr/bin/env bash
|
|
#
|
|
# Check Zeek's configuration for errors.
|
|
#
|
|
# check-config <use_installed_policies> <print_loaded_scripts> <cwd> <zeek_opts>
|
|
#
|
|
# use_installed_policies: 1 to use local policy files installed by
|
|
# "zeekctl install", or 0 to use the original files
|
|
# print_loaded_scripts: 1 to output loaded_scripts.log, or 0 to not output
|
|
# cwd: directory name to run Zeek from
|
|
# zeek_opts: string containing Zeek cmd-line options
|
|
|
|
if [ $# -lt 4 ]; then
|
|
echo "check-config: missing arguments"
|
|
exit 1
|
|
fi
|
|
|
|
. `dirname $0`/zeekctl-config.sh
|
|
|
|
use_installed_policies=$1
|
|
print_loaded_scripts=$2
|
|
tmp_node_dir=$3
|
|
shift 3
|
|
|
|
. "${scriptsdir}"/set-zeek-path
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "${zeek}" ]; then
|
|
echo "check-config: file not found: ${zeek}"
|
|
exit 1
|
|
fi
|
|
|
|
export PATH=${bindir}:${scriptsdir}:$PATH
|
|
|
|
cd "$tmp_node_dir"
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
echo $@ >.cmdline
|
|
|
|
check_option="-a"
|
|
if [ "$print_loaded_scripts" = "1" ]; then
|
|
# No Zeek logs are created with "-a", so don't use it with "zeekctl scripts".
|
|
check_option=
|
|
fi
|
|
|
|
ZEEKCTL_DISABLE_LISTEN=1 ZEEKCTL_CHECK_CONFIG=1 "${zeek}" $check_option "$@"
|
|
rc=$?
|
|
|
|
if [ $rc -eq 0 ] && [ "$print_loaded_scripts" = "1" ]; then
|
|
grep -v '^#' loaded_scripts*
|
|
fi
|
|
|
|
exit $rc
|