mirror of
https://github.com/Mangio621/Mangio-RVC-Fork.git
synced 2026-09-01 19:50:07 +02:00
Auto install MacOS dependencies (Homebrew, Python 3.8, ffmpeg)
This commit is contained in:
91
run.sh
91
run.sh
@@ -1,5 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define common paths for Homebrew
|
||||
BREW_PATHS=(
|
||||
"/usr/local/bin"
|
||||
"/opt/homebrew/bin"
|
||||
)
|
||||
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
# macOS specific env:
|
||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
||||
@@ -11,6 +17,89 @@ fi
|
||||
|
||||
requirements_file="requirements.txt"
|
||||
|
||||
# Function to add a path to PATH
|
||||
add_to_path() {
|
||||
echo "Homebrew found in $1, which is not in your PATH."
|
||||
read -p "Do you want to add this path to your PATH? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "Adding $1 to PATH..."
|
||||
|
||||
# Detect the shell and choose the right profile file
|
||||
local shell_profile
|
||||
if [[ $SHELL == *"/bash"* ]]; then
|
||||
shell_profile="$HOME/.bashrc"
|
||||
[[ ! -f "$shell_profile" ]] && shell_profile="$HOME/.bash_profile"
|
||||
elif [[ $SHELL == *"/zsh"* ]]; then
|
||||
shell_profile="$HOME/.zshrc"
|
||||
else
|
||||
echo "Unsupported shell. Please add the following line to your shell profile file manually:"
|
||||
echo "export PATH=\"$PATH:$1\""
|
||||
return
|
||||
fi
|
||||
|
||||
# Add the export line to the shell profile file
|
||||
echo "export PATH=\"$PATH:$1\"" >> "$shell_profile"
|
||||
|
||||
# Source the shell profile file
|
||||
source "$shell_profile"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check if Homebrew is in PATH
|
||||
if ! command -v brew &> /dev/null; then
|
||||
# If not, check common paths for Homebrew
|
||||
echo "Homebrew not found in PATH. Checking common paths..."
|
||||
for path in "${BREW_PATHS[@]}"; do
|
||||
if [[ -x "$path/brew" ]]; then
|
||||
add_to_path "$path"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Check again if Homebrew is in PATH
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Homebrew still not found. Attempting to install..."
|
||||
INSTALL_OUTPUT=$(/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")
|
||||
fi
|
||||
|
||||
# Verifying if Homebrew has been installed successfully
|
||||
if command -v brew &> /dev/null; then
|
||||
echo "Homebrew installed successfully."
|
||||
else
|
||||
echo "Homebrew installation failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extracting the commands to add Homebrew to the PATH
|
||||
PATH_COMMANDS=$(echo "$INSTALL_OUTPUT" | awk '/Next steps:/,/Further documentation:/' | grep 'eval')
|
||||
|
||||
echo "Extracted commands to add Homebrew to the PATH:"
|
||||
|
||||
IFS=$'\n' # Set the Internal Field Separator to a new line
|
||||
for cmd in $PATH_COMMANDS
|
||||
do
|
||||
echo "$cmd"
|
||||
done
|
||||
|
||||
# Asking the user if they want to execute them
|
||||
echo "Do you want to automatically add Homebrew to your PATH by executing the commands above? (y/n)"
|
||||
read -p "Are you sure you want to run these commands? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
IFS=$'\n' # Set the Internal Field Separator to a new line
|
||||
for cmd in $PATH_COMMANDS
|
||||
do
|
||||
eval "$cmd"
|
||||
done
|
||||
fi
|
||||
|
||||
# Installing ffmpeg with Homebrew
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
echo "Installing ffmpeg..."
|
||||
brew install ffmpeg
|
||||
fi
|
||||
|
||||
# Check if Python 3.8 is installed
|
||||
if ! command -v python3.8 &> /dev/null; then
|
||||
echo "Python 3.8 not found. Attempting to install..."
|
||||
@@ -42,4 +131,4 @@ else
|
||||
fi
|
||||
|
||||
# Run the main script
|
||||
python3.8 infer-web.py --pycmd python3.8
|
||||
python3.8 infer-web.py --pycmd python3.8
|
||||
|
||||
Reference in New Issue
Block a user