134 lines
2.9 KiB
Bash
Executable file
134 lines
2.9 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Playwright Setup Script for Stock Bot
|
|
# This script specifically handles Playwright installation and browser setup
|
|
|
|
set -e
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
log_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# Check if we're in the project directory
|
|
check_project_directory() {
|
|
if [[ ! -f "package.json" ]]; then
|
|
log_error "Please run this script from the project root directory"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Install Playwright dependencies
|
|
install_playwright_deps() {
|
|
log_info "Installing Playwright system dependencies..."
|
|
bunx playwright install-deps chromium
|
|
log_success "Playwright system dependencies installed"
|
|
}
|
|
|
|
# Install Playwright browsers
|
|
install_browsers() {
|
|
log_info "Installing Playwright browsers..."
|
|
|
|
# Install all browsers
|
|
bunx playwright install chromium
|
|
bunx playwright install firefox
|
|
bunx playwright install webkit
|
|
|
|
log_success "All Playwright browsers installed"
|
|
}
|
|
|
|
# Test Playwright installation
|
|
test_playwright() {
|
|
log_info "Testing Playwright installation..."
|
|
|
|
# Create a simple test script
|
|
cat > /tmp/test-playwright.js << 'EOF'
|
|
const { chromium } = require('playwright');
|
|
|
|
(async () => {
|
|
try {
|
|
const browser = await chromium.launch({ headless: true });
|
|
const page = await browser.newPage();
|
|
await page.goto('https://example.com');
|
|
const title = await page.title();
|
|
console.log('✅ Playwright test successful! Page title:', title);
|
|
await browser.close();
|
|
} catch (error) {
|
|
console.error('❌ Playwright test failed:', error.message);
|
|
process.exit(1);
|
|
}
|
|
})();
|
|
EOF
|
|
|
|
# Run the test
|
|
node /tmp/test-playwright.js
|
|
|
|
# Clean up
|
|
rm /tmp/test-playwright.js
|
|
|
|
log_success "Playwright test completed successfully"
|
|
}
|
|
|
|
# Main function
|
|
main() {
|
|
log_info "Setting up Playwright for Stock Bot..."
|
|
|
|
check_project_directory
|
|
install_playwright_deps
|
|
install_browsers
|
|
test_playwright
|
|
|
|
log_success "Playwright setup completed!"
|
|
log_info "You can now run your browser automation scripts"
|
|
}
|
|
|
|
# Show help
|
|
show_help() {
|
|
echo "Playwright Setup Script for Stock Bot"
|
|
echo ""
|
|
echo "Usage: $0 [OPTIONS]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -h, --help Show this help message"
|
|
echo " --test-only Only run the Playwright test"
|
|
echo " --deps-only Only install system dependencies"
|
|
echo ""
|
|
}
|
|
|
|
# Parse arguments
|
|
case "${1:-}" in
|
|
-h|--help)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
--test-only)
|
|
check_project_directory
|
|
test_playwright
|
|
exit 0
|
|
;;
|
|
--deps-only)
|
|
install_playwright_deps
|
|
exit 0
|
|
;;
|
|
"")
|
|
main
|
|
;;
|
|
*)
|
|
log_error "Unknown option: $1"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
esac
|