#!/bin/bash ################################################################################ # 玩玩云上传工具打包脚本 (Linux版本) ################################################################################ set -e echo "========================================" echo "玩玩云上传工具打包脚本" echo "========================================" echo "" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # 检查Python是否安装 if ! command -v python3 &> /dev/null; then echo -e "${RED}[错误] 未检测到Python 3,请先安装Python 3.7+${NC}" exit 1 fi echo -e "${GREEN}Python版本:${NC} $(python3 --version)" echo "" # 进入上传工具目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" echo "[1/4] 安装依赖包..." pip3 install -r requirements.txt --quiet || { echo -e "${RED}[错误] 依赖安装失败${NC}" exit 1 } echo -e "${GREEN}✓ 依赖安装完成${NC}" echo "" echo "[2/4] 安装PyInstaller..." pip3 install pyinstaller --quiet || { echo -e "${RED}[错误] PyInstaller安装失败${NC}" exit 1 } echo -e "${GREEN}✓ PyInstaller安装完成${NC}" echo "" echo "[3/4] 打包程序..." # 检测操作系统 OS_TYPE=$(uname -s) if [[ "$OS_TYPE" == "Linux" ]]; then echo -e "${YELLOW}注意: 在Linux系统上打包将生成Linux可执行文件${NC}" echo -e "${YELLOW}如需Windows exe文件,请在Windows系统上运行 build.bat${NC}" echo "" # 打包为Linux可执行文件 pyinstaller --onefile --name="wanwanyun-upload-tool" upload_tool.py || { echo -e "${RED}[错误] 打包失败${NC}" exit 1 } # 重命名并添加执行权限 mv dist/wanwanyun-upload-tool "dist/玩玩云上传工具" 2>/dev/null || true chmod +x "dist/玩玩云上传工具" 2>/dev/null || true elif [[ "$OS_TYPE" == MINGW* ]] || [[ "$OS_TYPE" == MSYS* ]] || [[ "$OS_TYPE" == CYGWIN* ]]; then echo "检测到Windows环境,打包为Windows exe..." pyinstaller --onefile --windowed --name="玩玩云上传工具" --icon=NONE upload_tool.py || { echo -e "${RED}[错误] 打包失败${NC}" exit 1 } else echo -e "${YELLOW}未识别的操作系统: $OS_TYPE${NC}" echo "尝试打包..." pyinstaller --onefile --name="wanwanyun-upload-tool" upload_tool.py || { echo -e "${RED}[错误] 打包失败${NC}" exit 1 } fi echo -e "${GREEN}✓ 打包完成${NC}" echo "" echo "[4/4] 清理临时文件..." rm -rf build rm -f *.spec echo -e "${GREEN}✓ 清理完成${NC}" echo "" echo "========================================" echo -e "${GREEN}打包完成!${NC}" echo "输出目录: dist/" ls -lh dist/ | tail -n +2 | awk '{print " - " $9 " (" $5 ")"}' echo "========================================"