Newer
Older
cortex-hub / .agent / utils / env_loader.sh
#!/bin/bash
# Load production credentials from GitBucket if they are missing from the environment
if [ -z "$REMOTE_PASSWORD" ] || [ -z "$REMOTE_HOST" ] || [ -z "$REMOTE_USER" ]; then
    # Load GitBucket token if present
    if [ -f "/app/.env.gitbucket" ]; then
        source "/app/.env.gitbucket"
    fi

    if [ -n "$GITBUCKET_TOKEN" ] && [ -n "$DEPLOYMENT_SNIPPET_ID" ]; then
        # echo "Secrets missing. Fetching from GitBucket..." >&2
        TMP_SECRETS=$(mktemp -d)
        if git clone "https://yangyangxie:${GITBUCKET_TOKEN}@gitbucket.jerxie.com/git/gist/yangyangxie/${DEPLOYMENT_SNIPPET_ID}.git" "$TMP_SECRETS" &> /dev/null; then
            if [ -f "$TMP_SECRETS/.env.production" ]; then
                # Use a temp file to extract values without contaminating the whole env immediately
                REMOTE_HOST=$(grep "REMOTE_HOST=" "$TMP_SECRETS/.env.production" | cut -d'=' -f2 | tr -d '\r')
                REMOTE_USER=$(grep "REMOTE_USER=" "$TMP_SECRETS/.env.production" | cut -d'=' -f2 | tr -d '\r')
                REMOTE_PASSWORD=$(grep "REMOTE_PASSWORD=" "$TMP_SECRETS/.env.production" | cut -d'=' -f2 | tr -d '\r')
                # Fallback to REMOTE_PASS if REMOTE_PASSWORD missing
                if [ -z "$REMOTE_PASSWORD" ]; then
                    REMOTE_PASSWORD=$(grep "REMOTE_PASS=" "$TMP_SECRETS/.env.production" | cut -d'=' -f2 | tr -d '\r')
                fi
            fi
        fi
        rm -rf "$TMP_SECRETS"
    fi
fi

# Fallback defaults
export REMOTE_HOST="${REMOTE_HOST:-192.168.68.113}"
export REMOTE_USER="${REMOTE_USER:-axieyangb}"
export REMOTE_PASSWORD="${REMOTE_PASSWORD}"

if [ -z "$REMOTE_PASSWORD" ]; then
    echo "Error: REMOTE_PASSWORD not found. Please check GitBucket secrets or set manually." >&2
    exit 1
fi