Fix yq syntax compatibility with Ubuntu yq version
This commit is contained in:
46
start.sh
46
start.sh
@ -77,7 +77,7 @@ EOF
|
|||||||
# Configure for Cloudron environment
|
# Configure for Cloudron environment
|
||||||
if [ -n "${CLOUDRON_POSTGRESQL_URL:-}" ]; then
|
if [ -n "${CLOUDRON_POSTGRESQL_URL:-}" ]; then
|
||||||
echo "=> Configuring PostgreSQL database"
|
echo "=> Configuring PostgreSQL database"
|
||||||
yq -i ".appservice.database.uri = \"$CLOUDRON_POSTGRESQL_URL\"" "$CONFIG_PATH"
|
yq eval ".appservice.database.uri = \"$CLOUDRON_POSTGRESQL_URL\"" -i "$CONFIG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${CLOUDRON_APP_DOMAIN:-}" ]; then
|
if [ -n "${CLOUDRON_APP_DOMAIN:-}" ]; then
|
||||||
@ -86,17 +86,17 @@ EOF
|
|||||||
BASE_DOMAIN=$(echo "$CLOUDRON_APP_DOMAIN" | cut -d. -f2-)
|
BASE_DOMAIN=$(echo "$CLOUDRON_APP_DOMAIN" | cut -d. -f2-)
|
||||||
|
|
||||||
# Update homeserver configuration
|
# Update homeserver configuration
|
||||||
yq -i ".homeserver.address = \"https://matrix.$BASE_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".homeserver.address = \"https://matrix.$BASE_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".homeserver.domain = \"$BASE_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".homeserver.domain = \"$BASE_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
|
|
||||||
# Update appservice configuration
|
# Update appservice configuration
|
||||||
yq -i ".appservice.address = \"https://$CLOUDRON_APP_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".appservice.address = \"https://$CLOUDRON_APP_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".appservice.hostname = \"0.0.0.0\"" "$CONFIG_PATH"
|
yq eval ".appservice.hostname = \"0.0.0.0\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".appservice.port = 29318" "$CONFIG_PATH"
|
yq eval ".appservice.port = 29318" -i "$CONFIG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set log file path
|
# Set log file path
|
||||||
yq -i ".logging.handlers.file.filename = \"/app/data/mautrix-whatsapp.log\"" "$CONFIG_PATH"
|
yq eval ".logging.handlers.file.filename = \"/app/data/mautrix-whatsapp.log\"" -i "$CONFIG_PATH"
|
||||||
|
|
||||||
chown cloudron:cloudron "$CONFIG_PATH" "$REGISTRATION_PATH"
|
chown cloudron:cloudron "$CONFIG_PATH" "$REGISTRATION_PATH"
|
||||||
|
|
||||||
@ -116,47 +116,47 @@ else
|
|||||||
if grep -q "filename.*logs/" "$CONFIG_PATH" 2>/dev/null || ! grep -q "/app/data/" "$CONFIG_PATH" 2>/dev/null; then
|
if grep -q "filename.*logs/" "$CONFIG_PATH" 2>/dev/null || ! grep -q "/app/data/" "$CONFIG_PATH" 2>/dev/null; then
|
||||||
echo "=> Fixing logging configuration in existing config"
|
echo "=> Fixing logging configuration in existing config"
|
||||||
# Ensure logging goes to the writable /app/data directory
|
# Ensure logging goes to the writable /app/data directory
|
||||||
yq -i ".logging.handlers.file.filename = \"/app/data/mautrix-whatsapp.log\"" "$CONFIG_PATH" 2>/dev/null || true
|
yq eval ".logging.handlers.file.filename = \"/app/data/mautrix-whatsapp.log\"" -i "$CONFIG_PATH" 2>/dev/null || true
|
||||||
# Add console logging as well for debugging
|
# Add console logging as well for debugging
|
||||||
yq -i ".logging.handlers.console.format = \"json\"" "$CONFIG_PATH" 2>/dev/null || true
|
yq eval ".logging.handlers.console.format = \"json\"" -i "$CONFIG_PATH" 2>/dev/null || true
|
||||||
yq -i ".logging.level = \"info\"" "$CONFIG_PATH" 2>/dev/null || true
|
yq eval ".logging.level = \"info\"" -i "$CONFIG_PATH" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Fix homeserver domain configuration and tokens
|
# Fix homeserver domain configuration and tokens
|
||||||
if [ -n "${CLOUDRON_APP_DOMAIN:-}" ]; then
|
if [ -n "${CLOUDRON_APP_DOMAIN:-}" ]; then
|
||||||
BASE_DOMAIN=$(echo "$CLOUDRON_APP_DOMAIN" | cut -d. -f2-)
|
BASE_DOMAIN=$(echo "$CLOUDRON_APP_DOMAIN" | cut -d. -f2-)
|
||||||
CURRENT_DOMAIN=$(yq -r ".homeserver.domain // empty" "$CONFIG_PATH" 2>/dev/null)
|
CURRENT_DOMAIN=$(yq eval ".homeserver.domain // empty" "$CONFIG_PATH" 2>/dev/null)
|
||||||
if [ "$CURRENT_DOMAIN" != "$BASE_DOMAIN" ] || [ -z "$CURRENT_DOMAIN" ]; then
|
if [ "$CURRENT_DOMAIN" != "$BASE_DOMAIN" ] || [ -z "$CURRENT_DOMAIN" ]; then
|
||||||
echo "=> Fixing homeserver domain configuration"
|
echo "=> Fixing homeserver domain configuration"
|
||||||
yq -i ".homeserver.address = \"https://matrix.$BASE_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".homeserver.address = \"https://matrix.$BASE_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".homeserver.domain = \"$BASE_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".homeserver.domain = \"$BASE_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".appservice.address = \"https://$CLOUDRON_APP_DOMAIN\"" "$CONFIG_PATH"
|
yq eval ".appservice.address = \"https://$CLOUDRON_APP_DOMAIN\"" -i "$CONFIG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update registration file with correct URL
|
# Update registration file with correct URL
|
||||||
if [ -f "$REGISTRATION_PATH" ]; then
|
if [ -f "$REGISTRATION_PATH" ]; then
|
||||||
yq -i ".url = \"https://$CLOUDRON_APP_DOMAIN\"" "$REGISTRATION_PATH" 2>/dev/null || true
|
yq eval ".url = \"https://$CLOUDRON_APP_DOMAIN\"" -i "$REGISTRATION_PATH" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure tokens exist
|
# Ensure tokens exist
|
||||||
if [ -f "$CONFIG_PATH" ] && [ -f "$REGISTRATION_PATH" ]; then
|
if [ -f "$CONFIG_PATH" ] && [ -f "$REGISTRATION_PATH" ]; then
|
||||||
AS_TOKEN=$(yq -r ".as_token // empty" "$REGISTRATION_PATH" 2>/dev/null)
|
AS_TOKEN=$(yq eval ".as_token // empty" "$REGISTRATION_PATH" 2>/dev/null)
|
||||||
HS_TOKEN=$(yq -r ".hs_token // empty" "$REGISTRATION_PATH" 2>/dev/null)
|
HS_TOKEN=$(yq eval ".hs_token // empty" "$REGISTRATION_PATH" 2>/dev/null)
|
||||||
|
|
||||||
# Generate tokens if missing
|
# Generate tokens if missing
|
||||||
if [ -z "$AS_TOKEN" ] || [ "$AS_TOKEN" = "generated_token" ]; then
|
if [ -z "$AS_TOKEN" ] || [ "$AS_TOKEN" = "generated_token" ]; then
|
||||||
AS_TOKEN=$(openssl rand -hex 32)
|
AS_TOKEN=$(openssl rand -hex 32)
|
||||||
echo "=> Generating new as_token"
|
echo "=> Generating new as_token"
|
||||||
yq -i ".as_token = \"$AS_TOKEN\"" "$REGISTRATION_PATH" 2>/dev/null || true
|
yq eval ".as_token = \"$AS_TOKEN\"" -i "$REGISTRATION_PATH" 2>/dev/null || true
|
||||||
yq -i ".appservice.as_token = \"$AS_TOKEN\"" "$CONFIG_PATH" 2>/dev/null || true
|
yq eval ".appservice.as_token = \"$AS_TOKEN\"" -i "$CONFIG_PATH" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$HS_TOKEN" ] || [ "$HS_TOKEN" = "generated_token" ]; then
|
if [ -z "$HS_TOKEN" ] || [ "$HS_TOKEN" = "generated_token" ]; then
|
||||||
HS_TOKEN=$(openssl rand -hex 32)
|
HS_TOKEN=$(openssl rand -hex 32)
|
||||||
echo "=> Generating new hs_token"
|
echo "=> Generating new hs_token"
|
||||||
yq -i ".hs_token = \"$HS_TOKEN\"" "$REGISTRATION_PATH" 2>/dev/null || true
|
yq eval ".hs_token = \"$HS_TOKEN\"" -i "$REGISTRATION_PATH" 2>/dev/null || true
|
||||||
yq -i ".appservice.hs_token = \"$HS_TOKEN\"" "$CONFIG_PATH" 2>/dev/null || true
|
yq eval ".appservice.hs_token = \"$HS_TOKEN\"" -i "$CONFIG_PATH" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -168,8 +168,8 @@ chown -R cloudron:cloudron /app/data
|
|||||||
# Configure TLS if certificates are available
|
# Configure TLS if certificates are available
|
||||||
if [ -f "/run/tls/tls.crt" ] && [ -f "/run/tls/tls.key" ]; then
|
if [ -f "/run/tls/tls.crt" ] && [ -f "/run/tls/tls.key" ]; then
|
||||||
echo "=> Configuring TLS certificates"
|
echo "=> Configuring TLS certificates"
|
||||||
yq -i ".appservice.tls_cert = \"/run/tls/tls.crt\"" "$CONFIG_PATH"
|
yq eval ".appservice.tls_cert = \"/run/tls/tls.crt\"" -i "$CONFIG_PATH"
|
||||||
yq -i ".appservice.tls_key = \"/run/tls/tls.key\"" "$CONFIG_PATH"
|
yq eval ".appservice.tls_key = \"/run/tls/tls.key\"" -i "$CONFIG_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start the bridge from the data directory to ensure relative paths work
|
# Start the bridge from the data directory to ensure relative paths work
|
||||||
|
Reference in New Issue
Block a user