77 lines
2.2 KiB
Bash
Executable File
77 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Exit immediately if a command fails (except when we explicitly allow it later)
|
|
set -e
|
|
|
|
echo "🚀 Starting Twitter to Bluesky Sync Job..."
|
|
|
|
# 1. Navigate to the directory containing the script
|
|
# (Uncomment and change the path below if running via cron so it knows where to look)
|
|
# cd /path/to/your/meteocatrss2bsky || exit
|
|
|
|
# 2. Load environment variables (Mimicking GitHub Secrets)
|
|
if [ -f ".env" ]; then
|
|
echo "📂 Loading secrets from .env file..."
|
|
export $(grep -v '^#' .env | xargs)
|
|
else
|
|
echo "⚠️ No .env file found. Make sure environment variables are exported manually!"
|
|
fi
|
|
|
|
# 3. Set up Python Virtual Environment (Mimicking actions/setup-python)
|
|
if [ ! -d "venv" ]; then
|
|
echo "🐍 Creating Python virtual environment..."
|
|
python3 -m venv venv
|
|
fi
|
|
|
|
echo "🔄 Activating virtual environment..."
|
|
source venv/bin/activate
|
|
|
|
# 4. Install dependencies
|
|
echo "📦 Installing dependencies..."
|
|
pip install --upgrade pip -q
|
|
pip install atproto tweety-ns playwright httpx arrow python-dotenv -q
|
|
|
|
# Install the browser
|
|
playwright install chromium
|
|
|
|
# Install the required Linux system libraries
|
|
playwright install-deps chromium
|
|
|
|
# 5. Run the script
|
|
echo "▶️ Running the sync script..."
|
|
|
|
# Temporarily disable "exit on error" so we can catch a script crash and save the screenshot
|
|
set +e
|
|
|
|
python3 twitter2bsky_daemon.py \
|
|
--twitter-username "$TWITTER_USERNAME" \
|
|
--twitter-password "$TWITTER_PASSWORD" \
|
|
--twitter-email "$TWITTER_EMAIL" \
|
|
--twitter-handle "$TWITTER_HANDLE" \
|
|
--bsky-handle "$BSKY_HANDLE" \
|
|
--bsky-password "$BSKY_APP_PASSWORD"
|
|
|
|
EXIT_CODE=$?
|
|
|
|
# Re-enable "exit on error"
|
|
set -e
|
|
|
|
# 6. Handle Errors and Screenshots (Mimicking actions/upload-artifact)
|
|
if [ $EXIT_CODE -ne 0 ]; then
|
|
echo "❌ Script failed with exit code $EXIT_CODE."
|
|
|
|
# Check if any screenshots were generated by Playwright
|
|
if ls screenshot_*.png 1> /dev/null 2>&1; then
|
|
echo "📸 Error screenshots found. Moving them to 'error_artifacts' folder..."
|
|
mkdir -p error_artifacts
|
|
mv screenshot_*.png error_artifacts/
|
|
echo "✅ Screenshots saved in ./error_artifacts/"
|
|
else
|
|
echo "⚠️ No screenshots found."
|
|
fi
|
|
|
|
exit $EXIT_CODE
|
|
fi
|
|
|
|
echo "✅ Sync job completed successfully!"
|