|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
3 | | -# Shell setup, assumes running on Ubuntu 24.04 able to build and install v4l2loopback module |
| 3 | +# Shell setup, assumes running on Ubuntu 24.04 |
4 | 4 | # ==================================================== |
5 | 5 |
|
6 | 6 | # Trace all commands. |
|
15 | 15 |
|
16 | 16 | SELF_PATH="$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd -P)" # Absolute canonical path |
17 | 17 |
|
| 18 | +# Resolve absolute defaults for host directories and metricbeat config |
| 19 | +DEFAULT_MEDIAFILES_HOST_DIR="${MEDIAFILES_HOST_DIR:-$SELF_PATH/mediafiles}" |
| 20 | +DEFAULT_SCRIPTS_LOGS_HOST_DIR="${SCRIPTS_LOGS_HOST_DIR:-$SELF_PATH/logs}" |
| 21 | +DEFAULT_METRICBEAT_CONFIG="${METRICBEAT_CONFIG:-$SELF_PATH/src/assets/metricbeat-config/metricbeat.yml}" |
| 22 | + |
| 23 | +# Export variables so the rest of the script and subsequent shells use them |
| 24 | +export MEDIAFILES_HOST_DIR="$DEFAULT_MEDIAFILES_HOST_DIR" |
| 25 | +export SCRIPTS_LOGS_HOST_DIR="$DEFAULT_SCRIPTS_LOGS_HOST_DIR" |
| 26 | +export METRICBEAT_CONFIG="$DEFAULT_METRICBEAT_CONFIG" |
| 27 | + |
| 28 | +# Ensure directories and metricbeat config directory exist |
| 29 | +mkdir -p "$MEDIAFILES_HOST_DIR" "$SCRIPTS_LOGS_HOST_DIR" "$(dirname "$METRICBEAT_CONFIG")" |
| 30 | + |
| 31 | +# Persist environment variables across reboots (interactive shells and system-wide) |
| 32 | +PROFILE_D=/etc/profile.d |
| 33 | +ENV_FILE=/etc/environment |
| 34 | + |
| 35 | +cat > "$PROFILE_D/openvidu-loadtest.sh" <<EOF |
| 36 | +# OpenVidu Loadtest browser emulator environment variables |
| 37 | +export MEDIAFILES_HOST_DIR="$MEDIAFILES_HOST_DIR" |
| 38 | +export SCRIPTS_LOGS_HOST_DIR="$SCRIPTS_LOGS_HOST_DIR" |
| 39 | +export METRICBEAT_CONFIG="$METRICBEAT_CONFIG" |
| 40 | +EOF |
| 41 | +chmod 644 "$PROFILE_D/openvidu-loadtest.sh" |
| 42 | + |
| 43 | +# Ensure /etc/environment contains the variables (key="value" format) |
| 44 | +touch "$ENV_FILE" |
| 45 | +for VAR in MEDIAFILES_HOST_DIR SCRIPTS_LOGS_HOST_DIR METRICBEAT_CONFIG; do |
| 46 | + VALUE="$(eval echo "\$$VAR")" |
| 47 | + if grep -q "^$VAR=" "$ENV_FILE" 2>/dev/null; then |
| 48 | + sed -i "s|^$VAR=.*|$VAR=\"$VALUE\"|" "$ENV_FILE" |
| 49 | + else |
| 50 | + echo "$VAR=\"$VALUE\"" >> "$ENV_FILE" |
| 51 | + fi |
| 52 | +done |
| 53 | + |
| 54 | + |
18 | 55 | ## Install necessary packages |
19 | 56 | apt-get update |
20 | 57 | apt-get upgrade -yq |
|
0 commit comments