Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -10,6 +10,41 @@ export FORCE_COLOR="0"
|
||||
LOG_FILE="/var/log/bssapp_deploy.log"
|
||||
APP_DIR="/opt/bssapp"
|
||||
LOCK_FILE="/tmp/bssapp_deploy.lock"
|
||||
RUNTIME_BACKUP_DIR=""
|
||||
RUNTIME_PRESERVE_FILES=(
|
||||
".env"
|
||||
"mail.env"
|
||||
"svc/.env"
|
||||
"svc/mail.env"
|
||||
"svc/fonts"
|
||||
"svc/public"
|
||||
)
|
||||
|
||||
backup_runtime_files() {
|
||||
RUNTIME_BACKUP_DIR="$(mktemp -d /tmp/bssapp-runtime.XXXXXX)"
|
||||
|
||||
for rel in "${RUNTIME_PRESERVE_FILES[@]}"; do
|
||||
src="$APP_DIR/$rel"
|
||||
dst="$RUNTIME_BACKUP_DIR/$rel"
|
||||
|
||||
if [[ -e "$src" ]]; then
|
||||
mkdir -p "$(dirname "$dst")"
|
||||
cp -a "$src" "$dst"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
restore_runtime_files() {
|
||||
[[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]] || return 0
|
||||
find "$RUNTIME_BACKUP_DIR" -mindepth 1 -print -quit | grep -q . || return 0
|
||||
cp -a "$RUNTIME_BACKUP_DIR/." "$APP_DIR/"
|
||||
}
|
||||
|
||||
cleanup_runtime_backup() {
|
||||
if [[ -n "$RUNTIME_BACKUP_DIR" && -d "$RUNTIME_BACKUP_DIR" ]]; then
|
||||
rm -rf "$RUNTIME_BACKUP_DIR"
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_runtime_env_files() {
|
||||
# Bazı unit dosyaları EnvironmentFile olarak bu path'leri bekliyor.
|
||||
@@ -20,6 +55,25 @@ ensure_runtime_env_files() {
|
||||
[[ -f "$APP_DIR/svc/mail.env" ]] || touch "$APP_DIR/svc/mail.env"
|
||||
}
|
||||
|
||||
ensure_pdf_fonts() {
|
||||
font_dir="$APP_DIR/svc/fonts"
|
||||
sys_font_dir="/usr/share/fonts/truetype/dejavu"
|
||||
|
||||
mkdir -p "$font_dir"
|
||||
|
||||
if [[ ! -f "$font_dir/DejaVuSans.ttf" && -f "$sys_font_dir/DejaVuSans.ttf" ]]; then
|
||||
cp -a "$sys_font_dir/DejaVuSans.ttf" "$font_dir/DejaVuSans.ttf"
|
||||
fi
|
||||
if [[ ! -f "$font_dir/DejaVuSans-Bold.ttf" && -f "$sys_font_dir/DejaVuSans-Bold.ttf" ]]; then
|
||||
cp -a "$sys_font_dir/DejaVuSans-Bold.ttf" "$font_dir/DejaVuSans-Bold.ttf"
|
||||
fi
|
||||
|
||||
if [[ ! -f "$font_dir/DejaVuSans.ttf" || ! -f "$font_dir/DejaVuSans-Bold.ttf" ]]; then
|
||||
echo "ERROR: Required PDF fonts missing in $font_dir (DejaVuSans.ttf / DejaVuSans-Bold.ttf)"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
build_api_binary() {
|
||||
if ! command -v go >/dev/null 2>&1; then
|
||||
echo "go command not found; cannot build backend binary."
|
||||
@@ -37,6 +91,8 @@ build_api_binary() {
|
||||
}
|
||||
|
||||
run_deploy() {
|
||||
trap cleanup_runtime_backup EXIT
|
||||
|
||||
exec 9>"$LOCK_FILE"
|
||||
if ! flock -n 9; then
|
||||
echo "[$(date '+%F %T')] Deploy already running. Skipping new request."
|
||||
@@ -50,9 +106,11 @@ run_deploy() {
|
||||
cd "$APP_DIR"
|
||||
|
||||
echo "== GIT SYNC =="
|
||||
backup_runtime_files
|
||||
git fetch origin
|
||||
git reset --hard origin/master
|
||||
git clean -fdx -e .env -e mail.env -e svc/.env -e svc/mail.env -e svc/bssapp
|
||||
restore_runtime_files
|
||||
|
||||
echo "== BUILD UI =="
|
||||
cd "$APP_DIR/ui"
|
||||
@@ -70,6 +128,9 @@ run_deploy() {
|
||||
echo "== ENSURE ENV FILES =="
|
||||
ensure_runtime_env_files
|
||||
|
||||
echo "== ENSURE PDF FONTS =="
|
||||
ensure_pdf_fonts
|
||||
|
||||
echo "== RESTART SERVICE =="
|
||||
systemctl restart bssapp
|
||||
|
||||
|
||||
Reference in New Issue
Block a user