diff --git a/build.sh b/build.sh index 8e52510..ae8b079 100644 --- a/build.sh +++ b/build.sh @@ -1,10 +1,9 @@ - # config editor 一键构建脚本 - 修复虚拟环境安装问题 set -e # 配置变量 PACKAGE_NAME="config-editor" -VERSION="1.1" +VERSION="1.2" ARCHITECTURE="amd64" MAINTAINER="hjy " @@ -66,6 +65,72 @@ StartupNotify=true StartupWMClass=ConfigEditor EOF +# 创建快捷方式创建脚本 +echo "创建快捷方式创建脚本..." +cat > "$BUILD_DIR/usr/share/config-editor/create_desktop_shortcut.sh" << 'EOF' +#!/bin/bash +# 桌面快捷方式创建脚本 + +# 检查是否有图形环境 +if [ -z "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ]; then + echo "未检测到图形环境,跳过创建桌面快捷方式" + exit 0 +fi + +echo "正在创建桌面快捷方式..." + +# 获取当前用户(如果是sudo运行,使用SUDO_USER) +CURRENT_USER="${SUDO_USER:-$USER}" +USER_HOME=$(getent passwd "$CURRENT_USER" | cut -d: -f6) + +if [ -z "$USER_HOME" ] || [ ! -d "$USER_HOME" ]; then + echo "无法确定用户主目录,跳过创建桌面快捷方式" + exit 0 +fi + +# 检测桌面目录(支持不同语言的桌面目录名) +DESKTOP_DIR="" +for possible_dir in "Desktop" "桌面" "Escritorio" "Bureau" "Schreibtisch"; do + if [ -d "$USER_HOME/$possible_dir" ]; then + DESKTOP_DIR="$USER_HOME/$possible_dir" + break + fi +done + +# 如果没有找到标准桌面目录,尝试创建Desktop目录 +if [ -z "$DESKTOP_DIR" ]; then + DESKTOP_DIR="$USER_HOME/Desktop" + mkdir -p "$DESKTOP_DIR" + chown "$CURRENT_USER:$CURRENT_USER" "$DESKTOP_DIR" + echo "创建桌面目录: $DESKTOP_DIR" +fi + +# 创建桌面快捷方式 +DESKTOP_FILE="$DESKTOP_DIR/config-editor.desktop" +cat > "$DESKTOP_FILE" << 'DESKTOP_EOF' +[Desktop Entry] +Version=1.0 +Type=Application +Name=Config Editor +Comment=Configuration Management Tool +Exec=/usr/bin/config-editor +Icon=config-editor +Categories=Development;Utility;Settings; +Terminal=false +StartupNotify=true +StartupWMClass=ConfigEditor +DESKTOP_EOF + +# 设置权限 +chown "$CURRENT_USER:$CURRENT_USER" "$DESKTOP_FILE" +chmod 755 "$DESKTOP_FILE" + +echo "桌面快捷方式已创建: $DESKTOP_FILE" +echo "如果快捷方式没有立即显示,请刷新桌面或重新登录" +EOF + +chmod +x "$BUILD_DIR/usr/share/config-editor/create_desktop_shortcut.sh" + # 创建虚拟环境安装脚本 - 修复版本 echo "创建虚拟环境安装脚本..." cat > "$BUILD_DIR/usr/share/config-editor/setup_venv.sh" << 'EOF' @@ -225,12 +290,54 @@ update-desktop-database /usr/share/applications 2>/dev/null || true # 设置权限 chmod 755 /usr/bin/config-editor chmod 755 /usr/share/config-editor/setup_venv.sh +chmod 755 /usr/share/config-editor/create_desktop_shortcut.sh + +# 尝试创建桌面快捷方式(如果图形环境可用) +echo "正在尝试创建桌面快捷方式..." +/usr/share/config-editor/create_desktop_shortcut.sh 2>/dev/null || true + +echo "" +echo "安装完成!您可以通过以下方式启动:" +echo "1. 桌面快捷方式 (如果已创建)" +echo "2. 应用程序菜单中的 'Config Editor'" +echo "3. 命令行: config-editor" +echo "" +echo "如需手动创建桌面快捷方式,请运行:" +echo " /usr/share/config-editor/create_desktop_shortcut.sh" exit 0 EOF chmod +x "$BUILD_DIR/DEBIAN/postinst" +# 创建卸载前脚本 +echo "创建卸载前脚本..." +cat > "$BUILD_DIR/DEBIAN/prerm" << 'EOF' +#!/bin/bash +# 卸载前脚本 + +echo "清理桌面快捷方式..." + +# 获取当前用户 +CURRENT_USER="${SUDO_USER:-$USER}" +USER_HOME=$(getent passwd "$CURRENT_USER" | cut -d: -f6 2>/dev/null || echo "") + +if [ -n "$USER_HOME" ] && [ -d "$USER_HOME" ]; then + # 删除可能的桌面快捷方式 + for possible_dir in "Desktop" "桌面" "Escritorio" "Bureau" "Schreibtisch"; do + DESKTOP_FILE="$USER_HOME/$possible_dir/config-editor.desktop" + if [ -f "$DESKTOP_FILE" ]; then + rm -f "$DESKTOP_FILE" + echo "移除桌面快捷方式: $DESKTOP_FILE" + fi + done +fi + +exit 0 +EOF + +chmod +x "$BUILD_DIR/DEBIAN/prerm" + # 构建deb包 echo "构建deb包..." dpkg-deb --build "$BUILD_DIR" "${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb" @@ -256,5 +363,6 @@ echo "1. 卸载旧版本: sudo dpkg -r config-editor" echo "2. 安装新版本: sudo dpkg -i ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb" echo "3. 修复虚拟环境: sudo /usr/share/config-editor/setup_venv.sh" echo "" +echo "新功能: 自动创建桌面快捷方式" echo "重要: 新版本修复了虚拟环境安装问题" -echo "==========================================" +echo "==========================================" \ No newline at end of file