Skip to content

Commit 6cbcb2a

Browse files
committed
Really...final fixes for entrypoint.sh
1 parent 32b1784 commit 6cbcb2a

1 file changed

Lines changed: 17 additions & 37 deletions

File tree

actions/entrypoint.sh

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -euo pipefail
33

4-
log(){ echo ">$SHELL_MSG $*"; }
4+
log(){ echo ">$*"; }
55

66
# -------------------------------
77
# 0) Resolve env with defaults
@@ -65,12 +65,10 @@ chmod 777 /proc/self/fd/1 || true
6565
# -------------------------------
6666
# 2) Container-safe rsyslog setup
6767
# -------------------------------
68-
# Precreate target log and relax perms so rsyslog can write without chown
6968
mkdir -p /var/log
7069
touch /var/log/bluecherry.log
7170
chmod 666 /var/log/bluecherry.log || true
7271

73-
# Strip owner/group directives from shipped config to prevent chown errors
7472
RSYS_CFG="/etc/rsyslog.d/10-bluecherry.conf"
7573
if [ -f "$RSYS_CFG" ]; then
7674
sed -i -E \
@@ -79,16 +77,12 @@ if [ -f "$RSYS_CFG" ]; then
7977
-e 's/(owner|group)=\"?[A-Za-z0-9_.-]+\"?//g' \
8078
"$RSYS_CFG" || true
8179
fi
82-
83-
# Replace deprecated '~' discard action with 'stop' (quiet warning)
8480
sed -i -E 's/^[[:space:]]*~[[:space:]]*$/stop/' /etc/rsyslog.d/*.conf 2>/dev/null || true
8581

86-
# Ensure logs also go to docker logs
8782
cat >/etc/rsyslog.d/99-stdout.conf <<'EOF'
8883
*.* /proc/self/fd/1
8984
EOF
9085

91-
# Start rsyslog with a clean pidfile
9286
log "Starting rsyslogd"
9387
rm -f /run/rsyslogd.pid /var/run/rsyslogd.pid 2>/dev/null || true
9488
/usr/sbin/rsyslogd -n &
@@ -119,7 +113,7 @@ start_php_fpm() {
119113
}
120114
start_php_fpm || true
121115

122-
# Create a compatibility symlink for configs expecting /etc/alternatives/php-fpm.sock
116+
# Compat symlink for configs expecting /etc/alternatives/php-fpm.sock
123117
for s in /run/php/php8.3-fpm.sock /run/php/php-fpm.sock; do
124118
if [ -S "$s" ]; then
125119
mkdir -p /etc/alternatives
@@ -160,11 +154,7 @@ else
160154
fi
161155
fi
162156

163-
# -----------------------------------------
164-
# 4.1) DB grants for MySQL 8 (quiet backup)
165-
# -----------------------------------------
166-
# If admin creds are available, ensure the app user has backup-friendly perms
167-
# and uses mysql_native_password for compatibility, using your env values.
157+
# DB grants for MySQL 8 (quiet backups + compat auth)
168158
if [ -n "${MYSQL_ADMIN_LOGIN:-}" ] && [ -n "${MYSQL_ADMIN_PASSWORD:-}" ]; then
169159
log "Ensuring '${DB_USER}' has PROCESS/SHOW VIEW/EVENT/TRIGGER/LOCK TABLES and native auth"
170160
mysql -h"${DB_HOST}" -u"${MYSQL_ADMIN_LOGIN}" -p"${MYSQL_ADMIN_PASSWORD}" <<SQL || true
@@ -175,38 +165,30 @@ FLUSH PRIVILEGES;
175165
SQL
176166
fi
177167

178-
# -----------------------------------------
179-
# 4.2) Optional: motion_map one-time fixes
180-
# -----------------------------------------
181-
#if mysql -h"${DB_HOST}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -e "SHOW TABLES LIKE 'Devices'" | grep -q Devices; then
182-
# echo "Fixing motion maps..."
183-
# mysql -h"${DB_HOST}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" <<'SQL' || true
184-
#UPDATE Devices SET motion_map = REPEAT('3', 768) WHERE protocol LIKE 'IP%' AND LENGTH(motion_map) <> 768;
185-
#UPDATE Devices SET motion_map = REPEAT('3', 192) WHERE driver = 'tw5864' AND LENGTH(motion_map) <> 192;
186-
#UPDATE Devices SET motion_map = REPEAT('3', 396) WHERE driver LIKE 'solo6%' AND LENGTH(motion_map) <> 396;
187-
#UPDATE Devices SET motion_map = REPEAT('3', 330) WHERE driver LIKE 'solo6%' AND LENGTH(motion_map) <> 330;
188-
#SQL
189-
#fi
168+
# Optional: motion_map fixes (guarded)
169+
if mysql -h"${DB_HOST}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" -e "SHOW TABLES LIKE 'Devices'" | grep -q Devices; then
170+
echo "Fixing motion maps..."
171+
mysql -h"${DB_HOST}" -u"${DB_USER}" -p"${DB_PASS}" -D"${DB_NAME}" <<'SQL' || true
172+
UPDATE Devices SET motion_map = REPEAT('3', 768) WHERE protocol LIKE 'IP%' AND LENGTH(motion_map) <> 768;
173+
UPDATE Devices SET motion_map = REPEAT('3', 192) WHERE driver = 'tw5864' AND LENGTH(motion_map) <> 192;
174+
UPDATE Devices SET motion_map = REPEAT('3', 396) WHERE driver LIKE 'solo6%' AND LENGTH(motion_map) <> 396;
175+
UPDATE Devices SET motion_map = REPEAT('3', 330) WHERE driver LIKE 'solo6%' AND LENGTH(motion_map) <> 330;
176+
SQL
177+
fi
190178

191-
# -------------------------------
192-
# 5) DEBUG mode (optional)
193-
# -------------------------------
179+
# DEBUG mode
194180
if [ "${DEBUG:-0}" = "1" ]; then
195181
export LD_LIBRARY_PATH=/usr/lib/bluecherry
196182
exec /usr/sbin/bc-server -u bluecherry -g bluecherry -d 7
197183
fi
198184

199-
# -------------------------------
200-
# 6) Start Bluecherry server
201-
# -------------------------------
185+
# Start Bluecherry server
202186
log "Starting bc-server as bluecherry:bluecherry"
203187
export LD_LIBRARY_PATH=/usr/lib/bluecherry
204188
/usr/sbin/bc-server -u bluecherry -g bluecherry &
205189
BC_PID=$!
206190

207-
# -------------------------------
208-
# 7) Graceful shutdown trap
209-
# -------------------------------
191+
# Graceful shutdown
210192
graceful_exit() {
211193
echo "> Caught signal, stopping services..."
212194
kill -TERM "${BC_PID:-0}" 2>/dev/null || true
@@ -222,9 +204,7 @@ graceful_exit() {
222204
}
223205
trap graceful_exit TERM INT
224206

225-
# -------------------------------
226-
# 8) Watchdog loop
227-
# -------------------------------
207+
# Watchdog loop
228208
log "All services launched. Entering watchdog loop."
229209
while sleep 15; do
230210
kill -0 "${RSYSLOG_PID}" 2>/dev/null || { echo "rsyslogd exited"; exit 1; }

0 commit comments

Comments
 (0)