2025-12-27 09:34:02 +08:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
#WheelMeasure 版本配置
|
|
|
|
|
|
PKG_NAME="WheelMeasure"
|
|
|
|
|
|
PKG_ARCH="arm64"
|
|
|
|
|
|
|
|
|
|
|
|
# 从Version.h文件中读取版本信息
|
|
|
|
|
|
VERSION_FILE="../App/WheelMeasure/WheelMeasureApp/Version.h"
|
|
|
|
|
|
|
|
|
|
|
|
if [ -f "${VERSION_FILE}" ]; then
|
|
|
|
|
|
# 读取版本号(从 WHEELMEASURE_VERSION_STRING 中提取)
|
|
|
|
|
|
PKG_VERSION=$(grep '#define WHEELMEASURE_VERSION_STRING' ${VERSION_FILE} | sed 's/.*"\(.*\)".*/\1/')
|
|
|
|
|
|
# 读取构建号(从 WHEELMEASURE_BUILD_STRING 中提取)
|
|
|
|
|
|
BUILD_NUMBER=$(grep '#define WHEELMEASURE_BUILD_STRING' ${VERSION_FILE} | sed 's/.*"\(.*\)".*/\1/')
|
|
|
|
|
|
|
|
|
|
|
|
echo "从 ${VERSION_FILE} 读取版本信息:"
|
|
|
|
|
|
echo " 版本号: ${PKG_VERSION}"
|
|
|
|
|
|
echo " 构建号: ${BUILD_NUMBER}"
|
|
|
|
|
|
|
|
|
|
|
|
# 如果读取失败,使用默认值
|
|
|
|
|
|
if [ -z "${PKG_VERSION}" ]; then
|
|
|
|
|
|
PKG_VERSION="1.0.0"
|
|
|
|
|
|
echo "警告: 无法读取版本号,使用默认值: ${PKG_VERSION}"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "${BUILD_NUMBER}" ]; then
|
|
|
|
|
|
BUILD_NUMBER="1"
|
|
|
|
|
|
echo "警告: 无法读取构建号,使用默认值: ${BUILD_NUMBER}"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
# Version.h文件不存在时的默认值
|
|
|
|
|
|
PKG_VERSION="1.0.0"
|
|
|
|
|
|
BUILD_NUMBER="1"
|
|
|
|
|
|
echo "警告: ${VERSION_FILE} 文件不存在,使用默认版本信息"
|
|
|
|
|
|
echo " 版本号: ${PKG_VERSION}"
|
|
|
|
|
|
echo " 构建号: ${BUILD_NUMBER}"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
PKG_PATH=$HOME/WheelMeasurePkg
|
|
|
|
|
|
CODE_PATH=../
|
|
|
|
|
|
RELEASE_PATH=../Publish
|
|
|
|
|
|
|
|
|
|
|
|
echo "=========================================="
|
|
|
|
|
|
echo "开始打包 WheelMeasure 应用程序 v${PKG_VERSION}..."
|
|
|
|
|
|
echo "=========================================="
|
|
|
|
|
|
|
|
|
|
|
|
echo "清理所有旧的打包目录..."
|
|
|
|
|
|
rm -rf $HOME/*Pkg
|
|
|
|
|
|
|
|
|
|
|
|
#QT depend
|
|
|
|
|
|
QT_PKG_PATH=/opt/firefly_qt5.15_arm64_20.04
|
|
|
|
|
|
QT_LIB_PATH=/opt/sysroot/firefly-arm64-sysroot-20.04/lib/aarch64-linux-gnu
|
|
|
|
|
|
|
|
|
|
|
|
echo "创建打包目录结构..."
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/DEBIAN
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/etc/profile.d
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/etc/xdg/autostart
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/opt/sysroot/lib
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/usr/local/bin
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/usr/lib
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/usr/share/applications
|
|
|
|
|
|
mkdir -p ${PKG_PATH}/usr/share/pixmaps
|
|
|
|
|
|
|
|
|
|
|
|
echo "复制 Qt 运行时环境..."
|
|
|
|
|
|
cp -rfd ${QT_PKG_PATH}/ext ${PKG_PATH}/opt/firefly_qt5.15
|
|
|
|
|
|
cp ${QT_PKG_PATH}/target_qtEnv.sh ${PKG_PATH}/etc/profile.d/
|
|
|
|
|
|
|
|
|
|
|
|
# 复制 Qt 库文件
|
|
|
|
|
|
for libfile in ${QT_LIB_PATH}/*.so*; do
|
|
|
|
|
|
# 获取文件名用于比较
|
|
|
|
|
|
filename=$(basename "$libfile")
|
|
|
|
|
|
|
|
|
|
|
|
# 跳过 LLVM、flite、clang 和 X11 相关库文件
|
|
|
|
|
|
if [[ "$filename" == *icu* ]]; then
|
|
|
|
|
|
# 复制其他库文件,保持符号链接
|
|
|
|
|
|
cp -rfd "$libfile" ${PKG_PATH}/opt/sysroot/lib/
|
|
|
|
|
|
continue
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
echo "复制依赖库文件..."
|
|
|
|
|
|
#depend
|
|
|
|
|
|
cp -a ${CODE_PATH}/SDK/OpenCV320/Arm/aarch64/*opencv_core*.so* ${PKG_PATH}/usr/lib/
|
|
|
|
|
|
cp -a ${CODE_PATH}/SDK/OpenCV320/Arm/aarch64/*opencv_imgproc*.so* ${PKG_PATH}/usr/lib/
|
|
|
|
|
|
cp -a ${CODE_PATH}/SDK/OpenCV320/Arm/aarch64/*opencv_highgui*.so* ${PKG_PATH}/usr/lib/
|
|
|
|
|
|
|
|
|
|
|
|
#depend - VzNLSDK
|
2025-12-29 01:16:58 +08:00
|
|
|
|
cp ${CODE_PATH}/SDK/Device/VzNLSDK/Arm/aarch64/*.so ${PKG_PATH}/usr/lib/
|
2025-12-27 09:34:02 +08:00
|
|
|
|
|
|
|
|
|
|
# wheelArchHeigthMeasure SDK (如果有Arm版本)
|
|
|
|
|
|
echo "复制 wheelArchHeigthMeasure 算法库..."
|
2025-12-29 01:16:58 +08:00
|
|
|
|
cp ${CODE_PATH}/AppAlgo/wheelArchHeigthMeasure/Arm/aarch64/*.so ${PKG_PATH}/usr/lib/
|
2025-12-27 09:34:02 +08:00
|
|
|
|
|
|
|
|
|
|
echo "复制应用程序主文件..."
|
|
|
|
|
|
#APP
|
|
|
|
|
|
cp ${CODE_PATH}/GrabBagPrj/buildarm/App/WheelMeasure/WheelMeasureApp/WheelMeasureApp ${PKG_PATH}/usr/local/bin/
|
|
|
|
|
|
|
|
|
|
|
|
echo "复制应用程序图标..."
|
|
|
|
|
|
#LOGO
|
|
|
|
|
|
cp ${CODE_PATH}/App/WheelMeasure/WheelMeasureApp/resource/logo.png ${PKG_PATH}/usr/share/pixmaps/wheelmeasure.png
|
|
|
|
|
|
|
|
|
|
|
|
echo "生成桌面自启动配置文件..."
|
|
|
|
|
|
#desktop autostart configuration
|
|
|
|
|
|
AUTOSTART_PATH=${PKG_PATH}/etc/xdg/autostart/wheelmeasure.desktop
|
|
|
|
|
|
cat > ${AUTOSTART_PATH} << EOF
|
|
|
|
|
|
[Desktop Entry]
|
|
|
|
|
|
Type=Application
|
|
|
|
|
|
Name=WheelMeasure
|
|
|
|
|
|
Comment=WheelMeasure Application Auto Start
|
|
|
|
|
|
Exec=/usr/local/bin/WheelMeasureApp
|
|
|
|
|
|
Icon=/usr/share/pixmaps/wheelmeasure.png
|
|
|
|
|
|
Hidden=false
|
|
|
|
|
|
NoDisplay=false
|
|
|
|
|
|
X-GNOME-Autostart-enabled=true
|
|
|
|
|
|
AutostartCondition=GNOME3 unless-session gnome
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
|
|
echo "生成 control 文件..."
|
|
|
|
|
|
#control
|
|
|
|
|
|
CONTROL_PATH=${PKG_PATH}/DEBIAN/control
|
|
|
|
|
|
echo "Package: ${PKG_NAME}" > ${CONTROL_PATH}
|
|
|
|
|
|
echo "Version: ${PKG_VERSION}" >> ${CONTROL_PATH}
|
|
|
|
|
|
echo "Section: wheelmeasureapp" >> ${CONTROL_PATH}
|
|
|
|
|
|
echo "Architecture: ${PKG_ARCH}" >> ${CONTROL_PATH}
|
|
|
|
|
|
echo "Priority: optional" >> ${CONTROL_PATH}
|
|
|
|
|
|
echo "Maintainer: WheelMeasure Team <support@wheelmeasure.com>" >> ${CONTROL_PATH}
|
|
|
|
|
|
echo "Description: WheelMeasure - 车轮拱高测量应用" >> ${CONTROL_PATH}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "生成安装后脚本..."
|
|
|
|
|
|
#postinst install exec script
|
|
|
|
|
|
POSTINST_PATH=${PKG_PATH}/DEBIAN/postinst
|
|
|
|
|
|
cat > ${POSTINST_PATH} << 'EOF'
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
echo "配置 WheelMeasure 应用程序..."
|
|
|
|
|
|
|
|
|
|
|
|
# 创建应用注册目录和文件
|
|
|
|
|
|
REGISTRY_DIR="/var/lib/vr-apps"
|
|
|
|
|
|
REGISTRY_FILE="${REGISTRY_DIR}/installed-apps.list"
|
|
|
|
|
|
APP_NAME="WheelMeasure"
|
|
|
|
|
|
|
|
|
|
|
|
mkdir -p "${REGISTRY_DIR}"
|
|
|
|
|
|
touch "${REGISTRY_FILE}"
|
|
|
|
|
|
|
|
|
|
|
|
# 检查是否是首次安装VR应用
|
|
|
|
|
|
FIRST_INSTALL=false
|
|
|
|
|
|
if [ ! -s "${REGISTRY_FILE}" ]; then
|
|
|
|
|
|
FIRST_INSTALL=true
|
|
|
|
|
|
echo "检测到首次安装VR应用,将安装公共资源..."
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 设置库文件路径(每个应用独立配置)
|
|
|
|
|
|
echo "/usr/lib" > /etc/ld.so.conf.d/wheelmeasure.conf
|
|
|
|
|
|
echo "/opt/sysroot/lib/" >> /etc/ld.so.conf.d/wheelmeasure.conf
|
|
|
|
|
|
|
|
|
|
|
|
# 如果不是首次安装,公共库已经配置过,只需要更新
|
|
|
|
|
|
if [ "${FIRST_INSTALL}" = true ]; then
|
|
|
|
|
|
echo "配置公共库路径..."
|
|
|
|
|
|
ldconfig
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "公共库已存在,仅更新配置..."
|
|
|
|
|
|
ldconfig
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 确保应用程序可执行
|
|
|
|
|
|
chmod +x /usr/local/bin/WheelMeasureApp
|
|
|
|
|
|
|
|
|
|
|
|
# 配置端口映射 502 -> 5020
|
|
|
|
|
|
echo "配置端口映射 502 -> 5020..."
|
|
|
|
|
|
|
|
|
|
|
|
# 检查并创建systemd服务确保重启后规则生效
|
|
|
|
|
|
if [ ! -f /etc/systemd/system/vr-port-mapping.service ]; then
|
|
|
|
|
|
echo "创建端口映射服务..."
|
|
|
|
|
|
cat > /etc/systemd/system/vr-port-mapping.service << 'PORTEOF'
|
|
|
|
|
|
[Unit]
|
|
|
|
|
|
Description=VR Common Port Mapping Service
|
|
|
|
|
|
After=network.target
|
|
|
|
|
|
|
|
|
|
|
|
[Service]
|
|
|
|
|
|
Type=oneshot
|
|
|
|
|
|
ExecStart=/bin/bash -c 'iptables -t nat -A PREROUTING -p tcp --dport 502 -j REDIRECT --to-port 5020'
|
|
|
|
|
|
RemainAfterExit=yes
|
|
|
|
|
|
|
|
|
|
|
|
[Install]
|
|
|
|
|
|
WantedBy=multi-user.target
|
|
|
|
|
|
PORTEOF
|
|
|
|
|
|
|
|
|
|
|
|
systemctl enable vr-port-mapping.service
|
|
|
|
|
|
systemctl start vr-port-mapping.service
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "端口映射服务已存在,跳过创建..."
|
|
|
|
|
|
# 确保服务处于启用状态
|
|
|
|
|
|
systemctl enable vr-port-mapping.service 2>/dev/null || true
|
|
|
|
|
|
systemctl start vr-port-mapping.service 2>/dev/null || true
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 检查iptables规则是否已存在
|
|
|
|
|
|
if ! iptables -t nat -C PREROUTING -p tcp --dport 502 -j REDIRECT --to-port 5020 2>/dev/null; then
|
|
|
|
|
|
echo "添加iptables端口映射规则..."
|
|
|
|
|
|
iptables -t nat -A PREROUTING -p tcp --dport 502 -j REDIRECT --to-port 5020
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "iptables规则已存在,跳过添加..."
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 检查并创建当前用户的桌面快捷方式
|
|
|
|
|
|
echo "检查当前用户的桌面快捷方式..."
|
|
|
|
|
|
|
|
|
|
|
|
# 获取当前执行安装的用户信息
|
|
|
|
|
|
if [ -n "$SUDO_USER" ]; then
|
|
|
|
|
|
# 如果是通过sudo执行的,获取真实用户
|
|
|
|
|
|
current_user="$SUDO_USER"
|
|
|
|
|
|
current_home=$(getent passwd "$current_user" | cut -d: -f6)
|
|
|
|
|
|
else
|
|
|
|
|
|
# 直接执行的情况
|
|
|
|
|
|
current_user=$(whoami)
|
|
|
|
|
|
current_home="$HOME"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "当前用户: $current_user"
|
|
|
|
|
|
echo "用户主目录: $current_home"
|
|
|
|
|
|
|
|
|
|
|
|
# 检查多种可能的桌面目录名称
|
|
|
|
|
|
desktop_dirs=("Desktop" "桌面" "desktop")
|
|
|
|
|
|
desktop_dir=""
|
|
|
|
|
|
desktop_shortcut=""
|
|
|
|
|
|
|
|
|
|
|
|
for dir_name in "${desktop_dirs[@]}"; do
|
|
|
|
|
|
potential_dir="$current_home/$dir_name"
|
|
|
|
|
|
if [ -d "$potential_dir" ]; then
|
|
|
|
|
|
desktop_dir="$potential_dir"
|
|
|
|
|
|
desktop_shortcut="$desktop_dir/wheelmeasure.desktop"
|
|
|
|
|
|
echo "找到桌面目录: $desktop_dir"
|
|
|
|
|
|
break
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
# 检查是否找到桌面目录
|
|
|
|
|
|
if [ -n "$desktop_dir" ]; then
|
|
|
|
|
|
# 检查桌面上是否已有快捷方式
|
|
|
|
|
|
if [ ! -f "$desktop_shortcut" ]; then
|
|
|
|
|
|
echo "为当前用户创建桌面快捷方式..."
|
|
|
|
|
|
# 复制桌面文件到用户桌面
|
|
|
|
|
|
cp /usr/share/applications/wheelmeasure.desktop "$desktop_shortcut"
|
|
|
|
|
|
# 设置正确的所有者和权限
|
|
|
|
|
|
chown $current_user:$current_user "$desktop_shortcut" 2>/dev/null || true
|
|
|
|
|
|
chmod 755 "$desktop_shortcut"
|
|
|
|
|
|
echo "已创建桌面快捷方式: $desktop_shortcut"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "桌面快捷方式已存在,跳过创建"
|
|
|
|
|
|
fi
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "当前用户没有找到桌面目录(Desktop/桌面/desktop),跳过桌面快捷方式创建"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 注册应用到系统
|
|
|
|
|
|
if ! grep -q "^${APP_NAME}$" "${REGISTRY_FILE}"; then
|
|
|
|
|
|
echo "${APP_NAME}" >> "${REGISTRY_FILE}"
|
|
|
|
|
|
echo "应用 ${APP_NAME} 已注册到系统"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "应用 ${APP_NAME} 已经注册,跳过..."
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "WheelMeasure 应用程序安装完成!"
|
|
|
|
|
|
echo "应用程序将在用户登录桌面后自动启动。"
|
|
|
|
|
|
echo "端口映射已配置:502 -> 5020"
|
|
|
|
|
|
echo "桌面快捷方式已创建(如果用户有Desktop目录)"
|
|
|
|
|
|
echo "如需立即启动,请运行: /usr/local/bin/WheelMeasureApp"
|
|
|
|
|
|
echo "如需禁用自启动,请删除文件: ~/.config/autostart/wheelmeasure.desktop"
|
|
|
|
|
|
echo "已安装的VR应用: $(cat ${REGISTRY_FILE} | tr '\n' ' ')"
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
|
|
chmod +x ${POSTINST_PATH}
|
|
|
|
|
|
|
|
|
|
|
|
echo "生成卸载脚本..."
|
|
|
|
|
|
#postrm uninstall exec script
|
|
|
|
|
|
POSTRM_PATH=${PKG_PATH}/DEBIAN/postrm
|
|
|
|
|
|
cat > ${POSTRM_PATH} << 'EOF'
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
echo "卸载 WheelMeasure 应用程序..."
|
|
|
|
|
|
|
|
|
|
|
|
# 应用注册信息
|
|
|
|
|
|
REGISTRY_DIR="/var/lib/vr-apps"
|
|
|
|
|
|
REGISTRY_FILE="${REGISTRY_DIR}/installed-apps.list"
|
|
|
|
|
|
APP_NAME="WheelMeasure"
|
|
|
|
|
|
|
|
|
|
|
|
# 从注册表中移除应用
|
|
|
|
|
|
if [ -f "${REGISTRY_FILE}" ]; then
|
|
|
|
|
|
sed -i "/^${APP_NAME}$/d" "${REGISTRY_FILE}"
|
|
|
|
|
|
echo "应用 ${APP_NAME} 已从系统注册表中移除"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 清理应用专属的库文件配置
|
|
|
|
|
|
rm -f /etc/ld.so.conf.d/wheelmeasure.conf
|
|
|
|
|
|
|
|
|
|
|
|
# 检查是否还有其他VR应用在使用公共资源
|
|
|
|
|
|
REMAINING_APPS=0
|
|
|
|
|
|
if [ -f "${REGISTRY_FILE}" ]; then
|
|
|
|
|
|
REMAINING_APPS=$(grep -c . "${REGISTRY_FILE}" 2>/dev/null || echo "0")
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "系统中剩余的VR应用数量: ${REMAINING_APPS}"
|
|
|
|
|
|
|
|
|
|
|
|
# 如果没有其他应用了,清理公共资源
|
|
|
|
|
|
if [ "${REMAINING_APPS}" -eq 0 ]; then
|
|
|
|
|
|
echo "没有其他VR应用,开始清理公共资源..."
|
|
|
|
|
|
|
|
|
|
|
|
# 清理端口映射配置
|
|
|
|
|
|
echo "清理端口映射配置..."
|
|
|
|
|
|
systemctl stop vr-port-mapping.service 2>/dev/null || true
|
|
|
|
|
|
systemctl disable vr-port-mapping.service 2>/dev/null || true
|
|
|
|
|
|
rm -f /etc/systemd/system/vr-port-mapping.service
|
|
|
|
|
|
|
|
|
|
|
|
# 清理iptables规则
|
|
|
|
|
|
iptables -t nat -D PREROUTING -p tcp --dport 502 -j REDIRECT --to-port 5020 2>/dev/null || true
|
|
|
|
|
|
|
|
|
|
|
|
# 清理注册目录
|
|
|
|
|
|
rm -rf "${REGISTRY_DIR}"
|
|
|
|
|
|
|
|
|
|
|
|
echo "公共资源已清理"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "系统中还有 ${REMAINING_APPS} 个VR应用在运行,保留公共资源"
|
|
|
|
|
|
if [ -f "${REGISTRY_FILE}" ]; then
|
|
|
|
|
|
echo "剩余应用: $(cat ${REGISTRY_FILE} | tr '\n' ' ')"
|
|
|
|
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 更新库缓存
|
|
|
|
|
|
ldconfig
|
|
|
|
|
|
|
|
|
|
|
|
# 重新加载systemd
|
|
|
|
|
|
systemctl daemon-reload
|
|
|
|
|
|
|
|
|
|
|
|
# 清理当前用户的桌面快捷方式
|
|
|
|
|
|
echo "清理当前用户的桌面快捷方式..."
|
|
|
|
|
|
|
|
|
|
|
|
# 获取当前执行卸载的用户信息
|
|
|
|
|
|
if [ -n "$SUDO_USER" ]; then
|
|
|
|
|
|
# 如果是通过sudo执行的,获取真实用户
|
|
|
|
|
|
current_user="$SUDO_USER"
|
|
|
|
|
|
current_home=$(getent passwd "$current_user" | cut -d: -f6)
|
|
|
|
|
|
else
|
|
|
|
|
|
# 直接执行的情况
|
|
|
|
|
|
current_user=$(whoami)
|
|
|
|
|
|
current_home="$HOME"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# 检查多种可能的桌面目录名称并清理快捷方式
|
|
|
|
|
|
desktop_dirs=("Desktop" "桌面" "desktop")
|
|
|
|
|
|
shortcut_found=false
|
|
|
|
|
|
|
|
|
|
|
|
for dir_name in "${desktop_dirs[@]}"; do
|
|
|
|
|
|
desktop_shortcut="$current_home/$dir_name/wheelmeasure.desktop"
|
|
|
|
|
|
if [ -f "$desktop_shortcut" ]; then
|
|
|
|
|
|
echo "删除当前用户的桌面快捷方式: $desktop_shortcut"
|
|
|
|
|
|
rm -f "$desktop_shortcut"
|
|
|
|
|
|
echo "已删除桌面快捷方式: $desktop_shortcut"
|
|
|
|
|
|
shortcut_found=true
|
|
|
|
|
|
fi
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$shortcut_found" = false ]; then
|
|
|
|
|
|
echo "当前用户没有找到桌面快捷方式,跳过清理"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "WheelMeasure 应用程序卸载完成!"
|
|
|
|
|
|
if [ "${REMAINING_APPS}" -eq 0 ]; then
|
|
|
|
|
|
echo "所有VR应用已卸载,公共资源已清理"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo "公共资源已保留供其他VR应用使用"
|
|
|
|
|
|
fi
|
|
|
|
|
|
echo "桌面快捷方式已清理"
|
|
|
|
|
|
echo "如需彻底清理自启动配置,请手动删除: ~/.config/autostart/wheelmeasure.desktop"
|
|
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
|
|
|
chmod +x ${POSTRM_PATH}
|
|
|
|
|
|
|
|
|
|
|
|
echo "生成桌面快捷方式..."
|
|
|
|
|
|
#desktop
|
|
|
|
|
|
DESKTOP_PATH=${PKG_PATH}/usr/share/applications/wheelmeasure.desktop
|
|
|
|
|
|
echo "[Desktop Entry]" > ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Version=${PKG_VERSION}" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Name=WheelMeasure" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Type=Application" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Comment=车轮拱高测量应用" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Terminal=false" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Exec=/usr/local/bin/WheelMeasureApp" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Icon=/usr/share/pixmaps/wheelmeasure.png" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Categories=Development;" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "GenericName=WheelMeasure App" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "Keywords=wheel;measure;app;" >> ${DESKTOP_PATH}
|
|
|
|
|
|
echo "StartupNotify=true" >> ${DESKTOP_PATH}
|
|
|
|
|
|
|
|
|
|
|
|
echo "设置文件权限..."
|
|
|
|
|
|
# 设置usr目录权限(不包括DEBIAN)
|
|
|
|
|
|
chmod -R 755 ${PKG_PATH}/usr
|
|
|
|
|
|
chmod -R 755 ${PKG_PATH}/etc
|
|
|
|
|
|
chmod -R 755 ${PKG_PATH}/opt
|
|
|
|
|
|
|
|
|
|
|
|
echo "开始构建 DEB 包..."
|
|
|
|
|
|
# 生成带时间戳和构建号的包文件名
|
|
|
|
|
|
TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
|
|
|
|
|
DEB_FILENAME="${RELEASE_PATH}/${PKG_NAME}_${PKG_VERSION}_${BUILD_NUMBER}_${PKG_ARCH}_${TIMESTAMP}.deb"
|
|
|
|
|
|
|
|
|
|
|
|
fakeroot dpkg -b ${PKG_PATH} ${DEB_FILENAME}
|
|
|
|
|
|
|
|
|
|
|
|
echo "=========================================="
|
|
|
|
|
|
echo "打包完成!"
|
|
|
|
|
|
echo "生成的包文件: ${DEB_FILENAME}"
|
|
|
|
|
|
echo "文件大小: $(ls -lh ${DEB_FILENAME} | awk '{print $5}')"
|
|
|
|
|
|
echo "=========================================="
|