feat: bundle multi-arch offline images into fnOS package

This commit is contained in:
2026-10-02 14:37:50 +08:00
parent 4eb58b9db9
commit e749c2afaf
8 changed files with 186 additions and 53 deletions
+5
View File
@@ -1,8 +1,13 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
source "$SCRIPT_DIR/offline_image.sh"
mkdir -p "$TRIM_PKGVAR" "$TRIM_PKGVAR/backups"
chown -R "$TRIM_USERNAME:$TRIM_GROUPNAME" "$TRIM_PKGVAR"
load_offline_image
echo "Havline 数据目录已准备:$TRIM_PKGVAR"
exit 0
+49
View File
@@ -0,0 +1,49 @@
#!/bin/bash
set -euo pipefail
image_arch() {
case "$(uname -m)" in
x86_64|amd64) echo "amd64" ;;
aarch64|arm64) echo "arm64" ;;
*) return 1 ;;
esac
}
image_path() {
local arch="$1"
local primary="$TRIM_APPDEST/docker/havline-${TRIM_APPVER}-${arch}.tar.gz"
if [ -f "$primary" ]; then
echo "$primary"
return 0
fi
find "$TRIM_APPDEST" -name "havline-${TRIM_APPVER}-${arch}.tar.gz" 2>/dev/null | head -n 1
}
load_offline_image() {
local arch path
arch="$(image_arch)" || {
echo "不支持的设备架构:$(uname -m)" > "$TRIM_TEMP_LOGFILE"
exit 1
}
path="$(image_path "$arch")"
if [ -z "$path" ] || [ ! -f "$path" ]; then
echo "找不到离线镜像:havline-${TRIM_APPVER}-${arch}.tar.gz" > "$TRIM_TEMP_LOGFILE"
exit 1
fi
if ! docker load -i "$path" >/dev/null 2>&1; then
echo "加载离线镜像失败:$path" > "$TRIM_TEMP_LOGFILE"
exit 1
fi
if ! docker image inspect "havline:${TRIM_APPVER}" >/dev/null 2>&1; then
echo "离线镜像加载后未找到 havline:${TRIM_APPVER}" > "$TRIM_TEMP_LOGFILE"
exit 1
fi
echo "离线镜像已加载:$path"
}
+5
View File
@@ -1,6 +1,9 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
source "$SCRIPT_DIR/offline_image.sh"
if [ -f "$TRIM_PKGVAR/havline.db" ] && [ ! -r "$TRIM_PKGVAR/havline.db" ]; then
echo "数据库不可读:$TRIM_PKGVAR/havline.db" > "$TRIM_TEMP_LOGFILE"
exit 1
@@ -11,4 +14,6 @@ if [ -f "$TRIM_PKGVAR/session_secret" ] && [ ! -r "$TRIM_PKGVAR/session_secret"
exit 1
fi
load_offline_image
exit 0