#!/bin/bash # ===================================================== # VoiletCStudio Linux 安装脚本 # 用法: sudo bash installer/install.sh # ===================================================== set -e APP_NAME="VoiletCStudio" VERSION="1.2" INSTALL_DIR="/opt/${APP_NAME}" BIN_DIR="/usr/local/bin" DESKTOP_DIR="/usr/share/applications" MIME_DIR="/usr/share/mime/packages" ICON_DIR="/usr/share/icons/hicolor/256x256/apps" echo "=========================================" echo " VoiletCStudio v${VERSION} - Linux 安装程序" echo "=========================================" # 检查 root if [ "$EUID" -ne 0 ]; then echo "请使用 sudo 运行: sudo bash installer/install.sh" exit 1 fi echo "" echo "[1/5] 编译程序..." mkdir -p build && cd build qmake ../VoiletCStudio.pro && make -j$(nproc) cd .. echo "" echo "[2/5] 安装到 ${INSTALL_DIR}..." mkdir -p "${INSTALL_DIR}" cp build/VoiletCStudio "${INSTALL_DIR}/" chmod +x "${INSTALL_DIR}/VoiletCStudio" # 创建命令行软链接 ln -sf "${INSTALL_DIR}/VoiletCStudio" "${BIN_DIR}/voiletcstudio" echo "" echo "[3/5] 安装图标..." mkdir -p "${ICON_DIR}" cp resources/voiletcstudio.png "${ICON_DIR}/voiletcstudio.png" echo "" echo "[4/5] 注册 MIME 类型和 .desktop..." mkdir -p "${MIME_DIR}" cat > "${MIME_DIR}/voiletcstudio.xml" << 'MIMEXML' VoiletCStudio Project VoiletCStudio 工程文件 MIMEXML mkdir -p "${DESKTOP_DIR}" cat > "${DESKTOP_DIR}/voiletcstudio.desktop" << DESKTOPEOF [Desktop Entry] Type=Application Name=VoiletCStudio Name[zh_CN]=紫罗兰 C 工程配置器 Comment=C Project Configurator with CMake Comment[zh_CN]=C 语言工程配置器,自动生成 CMakeLists.txt Exec=${INSTALL_DIR}/VoiletCStudio %f Icon=voiletcstudio MimeType=application/x-voiletcstudio; Categories=Development;IDE; Terminal=false DESKTOPEOF echo "" echo "[5/5] 更新系统数据库..." update-mime-database /usr/share/mime update-desktop-database gtk-update-icon-cache /usr/share/icons/hicolor 2>/dev/null || true echo "" echo "=========================================" echo " ✅ VoiletCStudio 安装完成!" echo "=========================================" echo "" echo " 命令行: voiletcstudio" echo " 或双击 .VSC 工程文件自动打开" echo "" echo " 卸载: sudo bash installer/uninstall.sh" echo ""