Files
lightweight-cobot/doc/build_docs.sh
T

69 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# Configure the Docker image and the MkDocs directory
DOCKER_IMAGE="squidfunk/mkdocs-material"
MKDOCS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/lwc-doc" && pwd)"
# Define color codes for logging
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log_info() { echo -e "${GREEN}[INFO]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# Check for Docker and the MkDocs directory
if ! command -v docker &> /dev/null; then
log_error "Docker не найден. Установи Docker и повтори."
exit 1
fi
if [ ! -d "$MKDOCS_DIR" ]; then
log_error "Папка mkdocs не найдена: $MKDOCS_DIR"
exit 1
fi
if [ ! -f "$MKDOCS_DIR/mkdocs.yml" ]; then
log_error "Файл mkdocs.yml не найден в $MKDOCS_DIR"
exit 1
fi
# Determine the mode (build or serve)
MODE="${1:-build}"
case "$MODE" in
build)
log_info "Сборка документации (build)..."
docker run --rm \
-v "$MKDOCS_DIR:/docs" \
"$DOCKER_IMAGE" build
if [ $? -eq 0 ]; then
log_info "Готово! Результат: $MKDOCS_DIR/site/"
else
log_error "Сборка завершилась с ошибкой."
exit 1
fi
;;
serve)
log_info "Запуск dev-сервера на http://localhost:8000 ..."
log_warn "Остановка: Ctrl+C"
docker run --rm -it \
-p 8000:8000 \
-v "$MKDOCS_DIR:/docs" \
"$DOCKER_IMAGE" serve \
--dev-addr=0.0.0.0:8000 \
--watch /docs \
--livereload
;;
*)
echo "Использование: $0 [build|serve]"
echo " build — собрать статику в mkdocs/site/ (по умолчанию)"
echo " serve — запустить live-preview на localhost:8000"
exit 1
;;
esac