Initial commit: 风影 OA 全栈源码(API/Web/Flutter/IM)
含 Phase 1.1 IM seq 排序、断线重连、多端已读同步与微信式语音转文字 UI。 排除 node_modules、构建产物、安装包与 .env 密钥。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Executable
+107
@@ -0,0 +1,107 @@
|
||||
#!/usr/bin/env bash
|
||||
# 构建 Linux .deb(Ubuntu / Debian / Deepin 25 amd64)
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
export PATH="/opt/flutter/bin:$PATH"
|
||||
export PUB_HOSTED_URL="${PUB_HOSTED_URL:-https://pub.dev}"
|
||||
export FLUTTER_STORAGE_BASE_URL="${FLUTTER_STORAGE_BASE_URL:-https://storage.googleapis.com}"
|
||||
|
||||
APP_ID="com.fysxkj.fengying_oa"
|
||||
APP_NAME="风影办公"
|
||||
VERSION="${1:-3.1.10}"
|
||||
BUILD="${2:-324}"
|
||||
PKG="fengying-oa"
|
||||
DEB="${PKG}_${VERSION}-${BUILD}_amd64.deb"
|
||||
|
||||
echo "== Flutter build linux ${VERSION}+${BUILD} =="
|
||||
flutter pub get
|
||||
flutter build linux --release --build-name="$VERSION" --build-number="$BUILD"
|
||||
|
||||
BUNDLE="build/linux/x64/release/bundle"
|
||||
STAGE="build/deb-stage"
|
||||
rm -rf "$STAGE"
|
||||
mkdir -p "$STAGE/DEBIAN"
|
||||
mkdir -p "$STAGE/opt/${PKG}"
|
||||
mkdir -p "$STAGE/usr/bin"
|
||||
mkdir -p "$STAGE/usr/share/applications"
|
||||
mkdir -p "$STAGE/usr/share/icons/hicolor/256x256/apps"
|
||||
|
||||
cp -a "$BUNDLE/." "$STAGE/opt/${PKG}/"
|
||||
|
||||
# 图标:优先用 bundle 内 icon,否则占位
|
||||
if [ -f "$BUNDLE/data/flutter_assets/assets/icon.png" ]; then
|
||||
cp "$BUNDLE/data/flutter_assets/assets/icon.png" "$STAGE/usr/share/icons/hicolor/256x256/apps/${APP_ID}.png"
|
||||
elif [ -f "assets/icon.png" ]; then
|
||||
cp "assets/icon.png" "$STAGE/usr/share/icons/hicolor/256x256/apps/${APP_ID}.png"
|
||||
else
|
||||
convert -size 256x256 xc:'#07C160' -fill white -gravity center -pointsize 48 -annotate 0 '风影' \
|
||||
"$STAGE/usr/share/icons/hicolor/256x256/apps/${APP_ID}.png" 2>/dev/null || \
|
||||
cp "$BUNDLE/fengying_oa" "$STAGE/usr/share/icons/hicolor/256x256/apps/${APP_ID}.png" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
cat > "$STAGE/usr/share/applications/${APP_ID}.desktop" <<EOF
|
||||
[Desktop Entry]
|
||||
Name=${APP_NAME}
|
||||
Comment=风影智慧办公综合平台
|
||||
Exec=/usr/bin/${PKG}
|
||||
Icon=${APP_ID}
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Office;Network;
|
||||
StartupWMClass=fengying_oa
|
||||
EOF
|
||||
|
||||
cat > "$STAGE/usr/bin/${PKG}" <<'EOF'
|
||||
#!/bin/sh
|
||||
APP_DIR="/opt/fengying-oa"
|
||||
export LD_LIBRARY_PATH="${APP_DIR}/lib:${LD_LIBRARY_PATH:-}"
|
||||
cd "$APP_DIR" || exit 1
|
||||
exec "$APP_DIR/fengying_oa" "$@"
|
||||
EOF
|
||||
chmod 755 "$STAGE/usr/bin/${PKG}"
|
||||
|
||||
cat > "$STAGE/DEBIAN/control" <<EOF
|
||||
Package: ${PKG}
|
||||
Version: ${VERSION}-${BUILD}
|
||||
Section: office
|
||||
Priority: optional
|
||||
Architecture: amd64
|
||||
Maintainer: 江苏风影随行科技有限公司 <13142801138@fysxkj.com>
|
||||
Homepage: https://oa.fysxkj.com
|
||||
Depends: libgtk-3-0, libglib2.0-0, libgstreamer1.0-0, libgstreamer-plugins-base1.0-0, libsecret-1-0, libsqlite3-0, libstdc++6, ca-certificates, zenity | kdialog
|
||||
Description: 风影智慧办公综合平台
|
||||
企业微信风格桌面客户端,支持消息、工作台、审批、考勤等。
|
||||
适配 Ubuntu 22.04+、Debian 12+、Deepin 25 等 amd64 系统。
|
||||
EOF
|
||||
|
||||
cat > "$STAGE/DEBIAN/postinst" <<'EOF'
|
||||
#!/bin/sh
|
||||
set -e
|
||||
if command -v update-desktop-database >/dev/null 2>&1; then
|
||||
update-desktop-database /usr/share/applications || true
|
||||
fi
|
||||
if command -v gtk-update-icon-cache >/dev/null 2>&1; then
|
||||
gtk-update-icon-cache -f -t /usr/share/icons/hicolor 2>/dev/null || true
|
||||
fi
|
||||
EOF
|
||||
chmod 755 "$STAGE/DEBIAN/postinst"
|
||||
|
||||
cat > "$STAGE/DEBIAN/prerm" <<'EOF'
|
||||
#!/bin/sh
|
||||
set -e
|
||||
exit 0
|
||||
EOF
|
||||
chmod 755 "$STAGE/DEBIAN/prerm"
|
||||
|
||||
mkdir -p build
|
||||
rm -f "build/${DEB}"
|
||||
dpkg-deb --root-owner-group --build "$STAGE" "build/${DEB}"
|
||||
cp "build/${DEB}" "build/fengying-oa_amd64.deb"
|
||||
echo "Built: build/${DEB}"
|
||||
echo "Stable URL copy: build/fengying-oa_amd64.deb"
|
||||
ls -lh "build/${DEB}" "build/fengying-oa_amd64.deb"
|
||||
|
||||
# 同时保留 tar.gz 便于手动解压
|
||||
tar -czf "build/fengying-oa-linux.tar.gz" -C "$BUNDLE" .
|
||||
echo "Also: build/fengying-oa-linux.tar.gz"
|
||||
Reference in New Issue
Block a user