Files
qipai/scripts/setup/init-layout.sh
T
2026-06-15 16:13:30 +08:00

63 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=lib.sh
. "${SCRIPT_DIR}/lib.sh"
qipai_init_layout() {
qipai_require_root_for_write
local dirs=(
"${APP_ROOT}"
"${APP_ROOT}/qipai-repo"
"${APP_ROOT}/qipai-backend"
"${APP_ROOT}/qipai-admin"
"${APP_ROOT}/qipai-miniapp"
"${APP_ROOT}/releases"
"${APP_ROOT}/backups/mysql"
"${APP_ROOT}/backups/emqx"
"${APP_ROOT}/backups/files"
"${APP_ROOT}/logs"
"${APP_ROOT}/nginx"
"${APP_ROOT}/redis-reserved"
"${APP_ROOT}/run"
)
for dir in "${dirs[@]}"; do
mkdir -p "$dir"
qipai_pass "directory exists: $dir"
done
if id qipai >/dev/null 2>&1; then
qipai_pass "user qipai exists"
else
qipai_warn "user qipai does not exist; create manually before production deployment"
fi
if id git >/dev/null 2>&1; then
qipai_pass "user git exists"
else
qipai_warn "user git does not exist; required for native Gitea service"
fi
cat >"${APP_ROOT}/run/layout.json" <<EOF
{
"generatedAt": "$(qipai_timestamp)",
"appRoot": "${APP_ROOT}",
"repo": "$(qipai_repo_dir)",
"backend": "${APP_ROOT}/qipai-backend",
"admin": "${APP_ROOT}/qipai-admin",
"miniapp": "${APP_ROOT}/qipai-miniapp",
"releases": "$(qipai_release_dir)",
"redis": "RESERVED/DISABLED"
}
EOF
qipai_pass "layout manifest written: ${APP_ROOT}/run/layout.json"
}
if [ "${1:-}" = "--run" ]; then
qipai_init_layout
fi