feat(ocmod): add TeleCart admin sidebar menu and local dev setup (#57)
- Add telecart.ocmod.xml: inject TeleCart menu item (with Settings child) after Marketing - Add scripts/apply_ocmod.sh to symlink ocmod file in Docker container - Add make ocmod target - In CI: set version in telecart.ocmod.xml from version_meta; use docs.telecart.pro link Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
51
scripts/apply_ocmod.sh
Executable file
51
scripts/apply_ocmod.sh
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
# Создаёт симлинк install.xml в system/ OpenCart внутри контейнера.
|
||||
# OpenCart при «Обновить» (Расширения → Модификации) подхватывает файлы
|
||||
# DIR_SYSTEM . '*.ocmod.xml' и применяет их своей логикой — так же, как на сервере.
|
||||
#
|
||||
# Использование:
|
||||
# ./scripts/apply_ocmod.sh
|
||||
#
|
||||
# Переменные (по умолчанию из docker-compose.yaml):
|
||||
# CONTAINER — сервис/контейнер (по умолчанию web)
|
||||
# TARGET_DIR — каталог system в контейнере (по умолчанию /web/upload/system)
|
||||
# SOURCE — путь к install.xml в контейнере (по умолчанию /module/oc_telegram_shop/ocmod/install.xml)
|
||||
#
|
||||
# После запуска: открой админку → Расширения → Модификации → нажми «Обновить».
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
CONTAINER="${CONTAINER:-web}"
|
||||
TARGET_DIR="${TARGET_DIR:-/web/upload/system}"
|
||||
SOURCE="${SOURCE:-/module/oc_telegram_shop/install.xml}"
|
||||
TARGET="$TARGET_DIR/telecart.ocmod.xml"
|
||||
|
||||
if ! docker compose exec "$CONTAINER" test -f "$SOURCE" 2>/dev/null; then
|
||||
echo "Ошибка: в контейнере $CONTAINER не найден $SOURCE" >&2
|
||||
echo "Проверь, что том ./module примонтирован в контейнер." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! docker compose exec "$CONTAINER" test -d "$TARGET_DIR" 2>/dev/null; then
|
||||
echo "Ошибка: в контейнере $CONTAINER не найден каталог $TARGET_DIR" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker compose exec "$CONTAINER" bash -c "
|
||||
if [ -e '$TARGET' ]; then
|
||||
if [ -L '$TARGET' ]; then
|
||||
current=\$(readlink '$TARGET')
|
||||
if [ \"\$current\" = '$SOURCE' ]; then
|
||||
echo 'Симлинк уже указывает на модуль: $TARGET'
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
rm -f '$TARGET'
|
||||
fi
|
||||
ln -sf '$SOURCE' '$TARGET'
|
||||
echo 'Симлинк создан в контейнере: $TARGET → $SOURCE'
|
||||
"
|
||||
|
||||
echo ""
|
||||
echo "Дальше: открой админку OpenCart → Расширения → Модификации → нажми «Обновить»."
|
||||
echo "Модификация применится той же логикой, что и при установке на сервере."
|
||||
Reference in New Issue
Block a user