fix(magicmirror2): Fix LXC container startup with default modules symlink

- Add symlink from modules/default to __modules/default (Docker entrypoint logic)
- Copy CSS files from __css to css directory on startup
- Fix shebang escaping issue by using printf instead of heredoc for #!/bin/sh
- Bump release to 0.4.0-r7

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-01-17 12:17:13 +01:00
parent a83cde0885
commit 520bfed735
2 changed files with 37 additions and 8 deletions

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=secubox-app-magicmirror2
PKG_RELEASE:=5
PKG_RELEASE:=7
PKG_VERSION:=0.4.0
PKG_ARCH:=all
PKG_MAINTAINER:=CyberMind Studio <contact@cybermind.fr>

View File

@ -249,26 +249,55 @@ lxc_create_docker_rootfs() {
fi
fi
# Create startup script
cat > "$rootfs/opt/start-mm2.sh" << 'START'
#!/bin/sh
# Create startup script (mimics Docker entrypoint.sh)
# Use printf for shebang to avoid shell escaping issues
printf '%s\n' '#!/bin/sh' > "$rootfs/opt/start-mm2.sh"
cat >> "$rootfs/opt/start-mm2.sh" << 'START'
export PATH="/usr/local/bin:/usr/bin:/bin:$PATH"
export NODE_ENV=production
export MM_PORT="${MM2_PORT:-8082}"
export MM_ADDRESS="${MM2_ADDRESS:-0.0.0.0}"
cd /opt/magic_mirror
MM_DIR="/opt/magic_mirror"
modules_dir="${MM_DIR}/modules"
default_dir="${modules_dir}/default"
config_dir="${MM_DIR}/config"
css_dir="${MM_DIR}/css"
cd "$MM_DIR"
# Setup default modules symlink (like Docker entrypoint)
if [ -d "${MM_DIR}/__modules/default" ]; then
mkdir -p "${modules_dir}"
if [ ! -e "${default_dir}" ]; then
echo "Symlinking default modules..."
ln -sf "${MM_DIR}/__modules/default" "${modules_dir}/default"
fi
fi
# Setup CSS files
if [ -d "${MM_DIR}/__css" ] && [ ! -f "${css_dir}/main.css" ]; then
mkdir -p "${css_dir}"
echo "Copying CSS files..."
cp ${MM_DIR}/__css/* "${css_dir}/" 2>/dev/null || true
fi
# Ensure custom.css exists
[ ! -f "${css_dir}/custom.css" ] && touch "${css_dir}/custom.css"
# Wait for config to be available
for i in 1 2 3 4 5; do
[ -f /opt/magic_mirror/config/config.js ] && break
[ -f "${config_dir}/config.js" ] && break
echo "Waiting for config.js..."
sleep 2
done
if [ ! -f /opt/magic_mirror/config/config.js ]; then
if [ ! -f "${config_dir}/config.js" ]; then
echo "ERROR: config.js not found, using default"
cp /opt/magic_mirror/config/config.js.sample /opt/magic_mirror/config/config.js 2>/dev/null || true
if [ -f "${MM_DIR}/__config/config.js.sample" ]; then
mkdir -p "${config_dir}"
cp "${MM_DIR}/__config/config.js.sample" "${config_dir}/config.js"
fi
fi
echo "Starting MagicMirror2 on port $MM_PORT..."