devilbox/autostart/configure-blackfire-cli.sh-example

93 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
set -u
set -o pipefail
###
### Pre-flight check
###
if ! command -v blackfire >/dev/null 2>&1; then
echo "No blackfire cli found, skipping configuration."
exit 0
fi
###
### Blackfire Client (cli) Variables
###
# Blackfire Client ID via env: BLACKFIRE_SERVER_ID
BF_CLIENT_ID=
# Blackfire Client Token via env: BLACKFIRE_SERVER_TOKEN
BF_CLIENT_TOKEN=
# Blackfire client configuration file
BF_CLIENT_INI="/home/devilbox/.blackfire.ini"
###
### Get Client ID and Client Token
###
if BF_CLIENT_ID="$( env | grep -Eo '^BLACKFIRE_CLIENT_ID=.*$' )"; then
BF_CLIENT_ID="${BF_CLIENT_ID#*=}"
fi
if BF_CLIENT_TOKEN="$( env | grep -Eo '^BLACKFIRE_CLIENT_TOKEN=.*$' )"; then
BF_CLIENT_TOKEN="${BF_CLIENT_TOKEN#*=}"
fi
###
### Create Client (cli) Config
###
{
echo "[blackfire]";
echo ";";
echo "; This is a configuration file for Blackfire.";
echo ";";
echo "";
echo ";";
echo "; setting: ca-cert";
echo "; desc : Sets the PEM encoded certificates to use";
echo "; default:";
echo "ca-cert=";
echo "";
echo ";";
echo "; setting: client-id";
echo "; desc : Sets the Client ID used for API authentication";
echo "; default:";
echo "client-id=${BF_CLIENT_ID}";
echo "";
echo ";";
echo "; setting: client-token";
echo "; desc : Sets the Client Token used for API authentication";
echo "; default:";
echo "client-token=${BF_CLIENT_TOKEN}";
echo "";
echo ";";
echo "; setting: endpoint";
echo "; desc : Sets the API endpoint";
echo "; default: https://blackfire.io";
echo "endpoint=https://blackfire.io";
echo "";
echo ";";
echo "; setting: http-proxy";
echo "; desc : Sets the HTTP proxy to use";
echo "; default:";
echo "http-proxy=";
echo "";
echo ";";
echo "; setting: https-proxy";
echo "; desc : Sets the HTTPS proxy to use";
echo "; default:";
echo "https-proxy=";
echo "";
echo ";";
echo "; setting: timeout";
echo "; desc : Sets the Blackfire API connection timeout";
echo "; default: 15s";
echo "timeout=15s";
} > "${BF_CLIENT_INI}"
chown devilbox:devilbox "${BF_CLIENT_INI}"
chmod 0600 "${BF_CLIENT_INI}"