Skip to content

Commit ec1f83a

Browse files
committed
Update setup_workspace to let user know to install brew
1 parent a76cc56 commit ec1f83a

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

scripts/setup_workspace.sh

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
# REQUIREMENTS:
4646
# Ubuntu: sudo privileges, apt package manager
4747
# macOS: internet connection (script installs miniforge automatically if needed)
48+
# Homebrew (optional - required only for voice functionality via PyAudio)
4849
#
4950
# WHAT IT DOES:
5051
# 1. Detects platform (Ubuntu vs macOS)
@@ -427,15 +428,17 @@ install_regular_packages_macos() {
427428
if mamba install -c conda-forge pyaudio -y 2>/dev/null; then
428429
log_success "PyAudio installed via conda"
429430
continue
430-
else
431+
elif [[ "$HOMEBREW_AVAILABLE" == "true" ]]; then
431432
log_warning "PyAudio conda installation failed, trying pip with Homebrew PortAudio..."
432-
# Ensure PortAudio is available via Homebrew
433-
if command -v brew &> /dev/null; then
434-
if ! brew list portaudio &>/dev/null; then
435-
brew install portaudio
436-
fi
433+
if pip install "$package"; then
434+
log_success "PyAudio installed via pip with Homebrew PortAudio"
435+
else
436+
log_error "PyAudio installation failed even with Homebrew PortAudio"
437+
PYAUDIO_FAILED=true
437438
fi
438-
pip install "$package"
439+
else
440+
log_warning "PyAudio installation skipped (Homebrew not available)"
441+
PYAUDIO_SKIPPED=true
439442
fi
440443
else
441444
# Try conda-forge first for other packages
@@ -459,19 +462,23 @@ setup_macos() {
459462
check_mamba
460463
log_success "Mamba is available"
461464

462-
# Step 1.5: Ensure Homebrew PortAudio for PyAudio compilation
463-
log_info "Ensuring Homebrew PortAudio for PyAudio compilation..."
465+
# Step 1.5: Check Homebrew availability for PyAudio compilation
466+
HOMEBREW_AVAILABLE=false
467+
PYAUDIO_SKIPPED=false
468+
PYAUDIO_FAILED=false
464469
if command -v brew &> /dev/null; then
470+
log_info "Homebrew found. Ensuring PortAudio for PyAudio compilation..."
465471
if ! brew list portaudio &>/dev/null; then
466472
log_info "Installing PortAudio via Homebrew..."
467473
brew install portaudio
468474
log_success "PortAudio installed via Homebrew"
469475
else
470476
log_success "PortAudio already installed via Homebrew"
471477
fi
478+
HOMEBREW_AVAILABLE=true
472479
else
473-
log_warning "Homebrew not found. PyAudio compilation may fail."
474-
log_warning "Install Homebrew and run: brew install portaudio"
480+
log_warning "Homebrew not found. Voice functionality (PyAudio) will be skipped."
481+
log_info "You can install voice functionality later by installing Homebrew first."
475482
fi
476483

477484
# Step 2: Create conda environment
@@ -678,6 +685,25 @@ main() {
678685
echo " 2. Test your setup:"
679686
echo " ros2 run coffee_voice_agent_ui voice_agent_monitor"
680687
echo ""
688+
689+
# Check for PyAudio installation issues
690+
if [[ "$PYAUDIO_SKIPPED" == "true" ]]; then
691+
echo "⚠️ IMPORTANT: Voice functionality is not available"
692+
echo " PyAudio was skipped because Homebrew is not installed."
693+
echo ""
694+
echo " To enable voice functionality:"
695+
echo " 1. Install Homebrew:"
696+
echo " /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
697+
echo " 2. Re-run this setup script:"
698+
echo " ./scripts/setup_workspace.sh"
699+
echo ""
700+
elif [[ "$PYAUDIO_FAILED" == "true" ]]; then
701+
echo "⚠️ WARNING: PyAudio installation failed"
702+
echo " Voice functionality may not work properly."
703+
echo " Try re-running this setup script or install PyAudio manually."
704+
echo ""
705+
fi
706+
681707
echo " 3. If you encounter issues:"
682708
echo " - Check the build logs in coffee_ws/log/"
683709
echo " - Re-run this setup script"

0 commit comments

Comments
 (0)