mirror of https://github.com/MISP/misp-docker
move settings util functions to utilities file
parent
24690cafe5
commit
c5d592a889
|
@ -1,10 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
MYSQLCMD="mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -P $MYSQL_PORT -h $MYSQL_HOST -r -N $MYSQL_DATABASE"
|
||||||
|
|
||||||
source /rest_client.sh
|
source /rest_client.sh
|
||||||
source /utilities.sh
|
source /utilities.sh
|
||||||
|
|
||||||
MYSQLCMD="mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -P $MYSQL_PORT -h $MYSQL_HOST -r -N $MYSQL_DATABASE"
|
|
||||||
|
|
||||||
# We now use envsubst for safe variable substitution with pseudo-json objects for env var enforcement
|
# We now use envsubst for safe variable substitution with pseudo-json objects for env var enforcement
|
||||||
# envsubst won't evaluate anything like $() or conditional variable expansion so lets do that here
|
# envsubst won't evaluate anything like $() or conditional variable expansion so lets do that here
|
||||||
export PYTHON_BIN="$(which python3)"
|
export PYTHON_BIN="$(which python3)"
|
||||||
|
@ -280,76 +280,6 @@ apply_optional_fixes() {
|
||||||
# fi
|
# fi
|
||||||
#}
|
#}
|
||||||
|
|
||||||
# Kludgy alternative to using cake Admin getSetting.
|
|
||||||
setting_is_set_alt() {
|
|
||||||
local setting="$1"
|
|
||||||
local config_json=$(echo '<?php require_once "/var/www/MISP/app/Config/config.php"; echo json_encode($config, JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?>'|/usr/bin/php)
|
|
||||||
local db_settings_enabled=$(jq -e 'getpath(("MISP.system_setting_db" | split("."))) // false' <<< $config_json)
|
|
||||||
local setting_in_config_file=$(jq -e 'getpath(("'"$setting"'" | split("."))) != null' <<< $config_json)
|
|
||||||
if $setting_in_config_file; then
|
|
||||||
return 0
|
|
||||||
elif $db_settings_enabled; then
|
|
||||||
local setting_in_db=$(echo "SELECT EXISTS(SELECT 1 FROM $MYSQL_DATABASE.system_settings WHERE setting = \"${setting}\");" | ${MYSQLCMD})
|
|
||||||
if [[ $setting_in_db -eq 1 ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
set_default_settings() {
|
|
||||||
local settings_json="$1"
|
|
||||||
local description="$2"
|
|
||||||
|
|
||||||
for setting in $(jq -r 'keys[]' <<< $settings_json); do
|
|
||||||
local default_value="$(jq -r '."'"$setting"'"["default_value"]' <<< $settings_json)"
|
|
||||||
local command_args="$(jq -r '."'"$setting"'"["command_args"] // ""' <<< $settings_json)"
|
|
||||||
|
|
||||||
set_safe_default "$setting" "$default_value" "$description" "$command_args"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
enforce_env_settings() {
|
|
||||||
local settings_json="$1"
|
|
||||||
local description="$2"
|
|
||||||
for setting in $(jq -r 'keys[]' <<< $settings_json); do
|
|
||||||
local default_value="$(jq -r '."'"$setting"'"["default_value"]' <<< $settings_json)"
|
|
||||||
local command_args="$(jq -r '."'"$setting"'"["command_args"] // ""' <<< $settings_json)"
|
|
||||||
echo "Enforcing $description setting '$setting' to env var or default value '$default_value'..."
|
|
||||||
sudo -u www-data /var/www/MISP/app/Console/cake Admin setSetting -q $command_args "$setting" "$default_value"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
set_safe_default() {
|
|
||||||
local setting="$1"
|
|
||||||
local default_value="$2"
|
|
||||||
local description="$3"
|
|
||||||
local command_args="$4"
|
|
||||||
|
|
||||||
if ! setting_is_set_alt "$setting"; then
|
|
||||||
echo "Updating unset $description setting '$setting' to '$default_value'..."
|
|
||||||
sudo -u www-data /var/www/MISP/app/Console/cake Admin setSetting -q $command_args "$setting" "$default_value"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
init_settings() {
|
|
||||||
local description="$1"
|
|
||||||
local enforced="/etc/misp-docker/${description}.envars.json"
|
|
||||||
local defaults="/etc/misp-docker/${description}.defaults.json"
|
|
||||||
|
|
||||||
if [[ -e "$enforced" ]]; then
|
|
||||||
echo "... enforcing env var settings"
|
|
||||||
local settings_json="$(envsubst < $enforced)"
|
|
||||||
enforce_env_settings "$settings_json" "$description"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -e "$defaults" ]]; then
|
|
||||||
echo "... checking for unset default settings"
|
|
||||||
local settings_json="$(cat $defaults)"
|
|
||||||
set_default_settings "$settings_json" "$description"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
update_components() {
|
update_components() {
|
||||||
sudo -u www-data /var/www/MISP/app/Console/cake Admin updateGalaxies
|
sudo -u www-data /var/www/MISP/app/Console/cake Admin updateGalaxies
|
||||||
sudo -u www-data /var/www/MISP/app/Console/cake Admin updateTaxonomies
|
sudo -u www-data /var/www/MISP/app/Console/cake Admin updateTaxonomies
|
||||||
|
|
|
@ -16,3 +16,73 @@ check_env_vars() {
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Kludgy alternative to using cake Admin getSetting.
|
||||||
|
setting_is_set_alt() {
|
||||||
|
local setting="$1"
|
||||||
|
local config_json=$(echo '<?php require_once "/var/www/MISP/app/Config/config.php"; echo json_encode($config, JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); ?>'|/usr/bin/php)
|
||||||
|
local db_settings_enabled=$(jq -e 'getpath(("MISP.system_setting_db" | split("."))) // false' <<< $config_json)
|
||||||
|
local setting_in_config_file=$(jq -e 'getpath(("'"$setting"'" | split("."))) != null' <<< $config_json)
|
||||||
|
if $setting_in_config_file; then
|
||||||
|
return 0
|
||||||
|
elif $db_settings_enabled; then
|
||||||
|
local setting_in_db=$(echo "SELECT EXISTS(SELECT 1 FROM $MYSQL_DATABASE.system_settings WHERE setting = \"${setting}\");" | ${MYSQLCMD})
|
||||||
|
if [[ $setting_in_db -eq 1 ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
set_default_settings() {
|
||||||
|
local settings_json="$1"
|
||||||
|
local description="$2"
|
||||||
|
|
||||||
|
for setting in $(jq -r 'keys[]' <<< $settings_json); do
|
||||||
|
local default_value="$(jq -r '."'"$setting"'"["default_value"]' <<< $settings_json)"
|
||||||
|
local command_args="$(jq -r '."'"$setting"'"["command_args"] // ""' <<< $settings_json)"
|
||||||
|
|
||||||
|
set_safe_default "$setting" "$default_value" "$description" "$command_args"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
enforce_env_settings() {
|
||||||
|
local settings_json="$1"
|
||||||
|
local description="$2"
|
||||||
|
for setting in $(jq -r 'keys[]' <<< $settings_json); do
|
||||||
|
local default_value="$(jq -r '."'"$setting"'"["default_value"]' <<< $settings_json)"
|
||||||
|
local command_args="$(jq -r '."'"$setting"'"["command_args"] // ""' <<< $settings_json)"
|
||||||
|
echo "Enforcing $description setting '$setting' to env var or default value '$default_value'..."
|
||||||
|
sudo -u www-data /var/www/MISP/app/Console/cake Admin setSetting -q $command_args "$setting" "$default_value"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
set_safe_default() {
|
||||||
|
local setting="$1"
|
||||||
|
local default_value="$2"
|
||||||
|
local description="$3"
|
||||||
|
local command_args="$4"
|
||||||
|
|
||||||
|
if ! setting_is_set_alt "$setting"; then
|
||||||
|
echo "Updating unset $description setting '$setting' to '$default_value'..."
|
||||||
|
sudo -u www-data /var/www/MISP/app/Console/cake Admin setSetting -q $command_args "$setting" "$default_value"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
init_settings() {
|
||||||
|
local description="$1"
|
||||||
|
local enforced="/etc/misp-docker/${description}.envars.json"
|
||||||
|
local defaults="/etc/misp-docker/${description}.defaults.json"
|
||||||
|
|
||||||
|
if [[ -e "$enforced" ]]; then
|
||||||
|
echo "... enforcing env var settings"
|
||||||
|
local settings_json="$(envsubst < $enforced)"
|
||||||
|
enforce_env_settings "$settings_json" "$description"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "$defaults" ]]; then
|
||||||
|
echo "... checking for unset default settings"
|
||||||
|
local settings_json="$(cat $defaults)"
|
||||||
|
set_default_settings "$settings_json" "$description"
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in New Issue