FireRed-OpenStoryline / build_env.sh
xusijie
Clean branch for HF push
06ba7ea
#!/bin/bash
# ้ขœ่‰ฒๅฎšไน‰ | Color Definitions
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# ๆ‰“ๅฐๅธฆ้ขœ่‰ฒ็š„ๆถˆๆฏ | Print colored messages
print_success() {
echo -e "${GREEN}[โœ“]${NC} $1"
}
print_error() {
echo -e "${RED}[โœ—]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[!]${NC} $1"
}
print_info() {
echo -e "${BLUE}[i]${NC} $1"
}
# ๆ‰“ๅฐๆ ‡้ข˜ | Print Title
echo ""
echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—"
echo "โ•‘ Storyline ้กน็›ฎไพ่ต–ๅฎ‰่ฃ…่„šๆœฌ | Dependency Installation โ•‘"
echo "โ•‘ ไฝฟ็”จ conda activate storyline ๆฟ€ๆดป็ŽฏๅขƒๅŽ่ฟ่กŒ โ•‘"
echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
echo ""
# ==========================================
# ๆญฅ้ชค 0: ๆฃ€ๆต‹ๆ“ไฝœ็ณป็ปŸ
# Step 0: Detect OS
# ==========================================
print_info "ๆฃ€ๆต‹ๆ“ไฝœ็ณป็ปŸ... | Detecting OS..."
if [[ "$OSTYPE" == "darwin"* ]]; then
IS_MACOS=true
IS_LINUX=false
print_success "ๆฃ€ๆต‹ๅˆฐ MacOS ็ณป็ปŸ | MacOS detected"
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
IS_MACOS=false
IS_LINUX=true
print_success "ๆฃ€ๆต‹ๅˆฐ Linux ็ณป็ปŸ | Linux detected"
else
print_error "ไธๆ”ฏๆŒ็š„ๆ“ไฝœ็ณป็ปŸ | Unsupported operating system: $OSTYPE"
exit 1
fi
echo ""
# ==========================================
# ๆญฅ้ชค 1: ๆฃ€ๆŸฅ conda ็Žฏๅขƒ
# Step 1: Check conda environment
# ==========================================
echo "[1/4] ๆฃ€ๆŸฅ conda ็Žฏๅขƒ... | Checking conda environment..."
if [ -z "$CONDA_DEFAULT_ENV" ]; then
print_error "ๆœชๆฃ€ๆต‹ๅˆฐ conda ็Žฏๅขƒ | No conda environment detected"
echo ""
echo "่ฏทๅ…ˆ่ฟ่กŒ: conda activate storyline"
echo "Please run: conda activate storyline"
exit 1
fi
if [ "$CONDA_DEFAULT_ENV" != "storyline" ]; then
print_warning "ๅฝ“ๅ‰็Žฏๅขƒ: $CONDA_DEFAULT_ENV"
echo ""
read -p "ๅปบ่ฎฎไฝฟ็”จ storyline ็Žฏๅขƒ๏ผŒๆ˜ฏๅฆ็ปง็ปญ? | Continue anyway? (y/n) " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "่ฏท่ฟ่กŒ: conda activate storyline"
exit 1
fi
else
print_success "ๅฝ“ๅ‰็Žฏๅขƒ: storyline"
fi
# ๆ˜พ็คบ Python ไฟกๆฏ
print_info "Python ไฟกๆฏ | Python Info:"
echo " ็‰ˆๆœฌ | Version: $(python --version 2>&1)"
echo " ่ทฏๅพ„ | Path: $(which python)"
echo ""
# ==========================================
# ๆญฅ้ชค 2: ๆฃ€ๆŸฅ FFmpeg
# Step 2: Check FFmpeg
# ==========================================
echo "[2/4] ๆฃ€ๆŸฅ FFmpeg... | Checking FFmpeg..."
if ! command -v ffmpeg &> /dev/null; then
print_warning "ๆœชๆฃ€ๆต‹ๅˆฐ FFmpeg | FFmpeg not detected"
echo ""
read -p "ๆ˜ฏๅฆๅฎ‰่ฃ… FFmpeg? | Install FFmpeg? (y/n) " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
print_info "ๆญฃๅœจๅฎ‰่ฃ… FFmpeg... | Installing FFmpeg..."
if [ "$IS_MACOS" = true ]; then
if ! command -v brew &> /dev/null; then
print_error "้œ€่ฆ Homebrew ๆฅๅฎ‰่ฃ… FFmpeg | Homebrew required to install FFmpeg"
echo "่ฏท่ฎฟ้—ฎ: https://brew.sh"
exit 1
fi
brew install ffmpeg
elif [ "$IS_LINUX" = true ]; then
if command -v apt-get &> /dev/null; then
sudo apt-get update
sudo apt-get install -y ffmpeg
elif command -v yum &> /dev/null; then
sudo yum install -y epel-release
sudo yum install -y ffmpeg ffmpeg-devel
else
print_error "ๆ— ๆณ•่ฏ†ๅˆซ็š„ๅŒ…็ฎก็†ๅ™จ | Unrecognized package manager"
exit 1
fi
fi
if [ $? -eq 0 ]; then
print_success "FFmpeg ๅฎ‰่ฃ…ๆˆๅŠŸ | FFmpeg installed successfully"
else
print_error "FFmpeg ๅฎ‰่ฃ…ๅคฑ่ดฅ | FFmpeg installation failed"
exit 1
fi
else
print_warning "่ทณ่ฟ‡ FFmpeg ๅฎ‰่ฃ…๏ผˆๅฏ่ƒฝๅฝฑๅ“้Ÿณ่ง†้ข‘ๅค„็†ๅŠŸ่ƒฝ๏ผ‰"
print_warning "Skipping FFmpeg (may affect audio/video features)"
fi
else
print_success "FFmpeg ๅทฒๅฎ‰่ฃ… | FFmpeg installed"
echo " ็‰ˆๆœฌ | Version: $(ffmpeg -version 2>&1 | head -n 1)"
fi
echo ""
# ==========================================
# ๆญฅ้ชค 3: ไธ‹่ฝฝ้กน็›ฎ่ต„ๆบ
# Step 3: Download project resources
# ==========================================
echo "[3/4] ไธ‹่ฝฝ้กน็›ฎ่ต„ๆบ... | Downloading project resources..."
if [ -f "download.sh" ]; then
print_info "ๆ‰ง่กŒ่ต„ๆบไธ‹่ฝฝ่„šๆœฌ... | Running download script..."
chmod +x download.sh
./download.sh
if [ $? -eq 0 ]; then
print_success "่ต„ๆบไธ‹่ฝฝๅฎŒๆˆ | Resources downloaded successfully"
else
print_error "่ต„ๆบไธ‹่ฝฝๅคฑ่ดฅ | Resource download failed"
exit 1
fi
else
print_warning "ๆœชๆ‰พๅˆฐ download.sh | download.sh not found"
echo "ๅฆ‚้œ€ไธ‹่ฝฝๆจกๅž‹็ญ‰่ต„ๆบ๏ผŒ่ฏทๆ‰‹ๅŠจๆ‰ง่กŒ download.sh"
echo "To download models, please run download.sh manually"
fi
echo ""
# ==========================================
# ๆญฅ้ชค 4: ๅฎ‰่ฃ… Python ไพ่ต–
# Step 4: Install Python dependencies
# ==========================================
echo "[4/4] ๅฎ‰่ฃ… Python ไพ่ต–... | Installing Python dependencies..."
if [ ! -f "requirements.txt" ]; then
print_error "ๆœชๆ‰พๅˆฐ requirements.txt | requirements.txt not found"
exit 1
fi
print_info "ๆญฃๅœจๅฎ‰่ฃ…ไพ่ต–ๅŒ…๏ผŒ่ฏท็จๅ€™... | Installing packages, please wait..."
echo ""
# ๅฎ‰่ฃ…ไพ่ต–
print_info "ๅฎ‰่ฃ…ไพ่ต–ๅŒ…... | Installing dependencies..."
# ๅฐ่ฏ•ไฝฟ็”จๆธ…ๅŽ้•œๅƒๆบ
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
if [ $? -ne 0 ]; then
print_warning "ๆธ…ๅŽ้•œๅƒๅฎ‰่ฃ…ๅคฑ่ดฅ๏ผŒๅฐ่ฏ•ไฝฟ็”จ้ป˜่ฎคๆบ... | Tsinghua mirror failed, trying default..."
pip install -r requirements.txt
if [ $? -ne 0 ]; then
print_error "ไพ่ต–ๅฎ‰่ฃ…ๅคฑ่ดฅ | Dependency installation failed"
echo ""
echo "่ฏทๅฐ่ฏ•ๆ‰‹ๅŠจๅฎ‰่ฃ…: pip install -r requirements.txt"
exit 1
fi
fi
print_success "ไพ่ต–ๅฎ‰่ฃ…ๅฎŒๆˆ | Dependencies installed successfully"
echo ""
# ==========================================
# ๅฎ‰่ฃ…ๅฎŒๆˆ | Installation Complete
# ==========================================
echo ""
echo "โ•”โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•—"
echo "โ•‘ ๅฎ‰่ฃ…ๆˆๅŠŸ๏ผ| Installation Successful! โ•‘"
echo "โ•šโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•"
echo ""
print_info "็Žฏๅขƒไฟกๆฏ | Environment Info:"
echo " Conda ็Žฏๅขƒ | Conda Env: $CONDA_DEFAULT_ENV"
echo " Python: $(python --version 2>&1)"
command -v ffmpeg &> /dev/null && echo " FFmpeg: $(ffmpeg -version 2>&1 | head -n 1 | cut -d' ' -f3)"
echo ""
print_success "็Žฐๅœจๅฏไปฅ่ฟ่กŒ้กน็›ฎไบ†๏ผ| You can now run the project!"