更新 build.sh

This commit is contained in:
hujinyang 2025-12-31 09:21:10 +00:00
parent 8dcd19c97d
commit d880ae5cd4

112
build.sh
View File

@ -1,10 +1,9 @@
# config editor 一键构建脚本 - 修复虚拟环境安装问题 # config editor 一键构建脚本 - 修复虚拟环境安装问题
set -e set -e
# 配置变量 # 配置变量
PACKAGE_NAME="config-editor" PACKAGE_NAME="config-editor"
VERSION="1.1" VERSION="1.2"
ARCHITECTURE="amd64" ARCHITECTURE="amd64"
MAINTAINER="hjy <hjy@pw.com>" MAINTAINER="hjy <hjy@pw.com>"
@ -66,6 +65,72 @@ StartupNotify=true
StartupWMClass=ConfigEditor StartupWMClass=ConfigEditor
EOF 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 "创建虚拟环境安装脚本..." echo "创建虚拟环境安装脚本..."
cat > "$BUILD_DIR/usr/share/config-editor/setup_venv.sh" << 'EOF' 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/bin/config-editor
chmod 755 /usr/share/config-editor/setup_venv.sh 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 exit 0
EOF EOF
chmod +x "$BUILD_DIR/DEBIAN/postinst" 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包 # 构建deb包
echo "构建deb包..." echo "构建deb包..."
dpkg-deb --build "$BUILD_DIR" "${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.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 "2. 安装新版本: sudo dpkg -i ${PACKAGE_NAME}_${VERSION}_${ARCHITECTURE}.deb"
echo "3. 修复虚拟环境: sudo /usr/share/config-editor/setup_venv.sh" echo "3. 修复虚拟环境: sudo /usr/share/config-editor/setup_venv.sh"
echo "" echo ""
echo "新功能: 自动创建桌面快捷方式"
echo "重要: 新版本修复了虚拟环境安装问题" echo "重要: 新版本修复了虚拟环境安装问题"
echo "==========================================" echo "=========================================="