Files
VoiletCStudio/installer/install.sh
虾哥 2ea81633f9 v1.2: .VSC 文件格式 & 跨平台安装程序
【文件格式】
- 工程文件扩展名从 .json 改为 .VSC(内容仍为 JSON)
- 文件对话框过滤、保存/打开全部适配 .VSC
- 双击 .VSC 文件可直接打开工程(命令行传参)

【安装程序】
- Windows: NSIS 安装脚本 (installer/voiletcstudio.nsi)
  支持注册 .VSC 文件关联、开始菜单/桌面快捷方式、卸载
- Linux: install.sh/uninstall.sh 一键安装/卸载
  自动注册 MIME 类型、.desktop 文件、命令行软链接
- 内置 --register/--unregister 命令行参数用于文件关联

【代码清理】
- 移除所有拖拽功能(dragEnter/Move/DropEvent)
- 新增 MainWindow::openProjectFile() 用于命令行打开
- main.cpp 完整重写,加入命令行解析器

【其他】
- .gitignore 排除 NSIS 输出 (.exe)
2026-04-28 19:14:54 +08:00

93 lines
2.5 KiB
Bash

#!/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'
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-voiletcstudio">
<comment>VoiletCStudio Project</comment>
<comment xml:lang="zh_CN">VoiletCStudio 工程文件</comment>
<glob pattern="*.VSC"/>
<glob pattern="*.vsc"/>
</mime-type>
</mime-info>
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 ""