Files
dedinit.ru/Makefile
T
estorozhenko d426aa39ed chore(docs): уборка структуры — вся документация в docs/, краткий README, добавлен AGENTS.md
- AGENTS.md: правила проекта (структура доков, стек, статьи, деплой, git, openspec, проверки)
- README.md: сокращён до введения + указателей на docs/
- docs/: DEPLOY_INSTRUCTIONS, ROADMAP, PAPERMOD_PARAMS, QWEN, gitea-setup,
  Telegram_frontend, ssh_setup, archive/PROJECT_SUMMARY (из .qwen/)
- tools/: winscp_script.txt переехал из корня к deploy_sftp.py
- Makefile и deploy_sftp.py: ссылки на docs/DEPLOY_INSTRUCTIONS.md
2026-09-12 09:58:09 +00:00

69 lines
3.1 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Определяем операционную систему
ifeq ($(OS),Windows_NT)
PLATFORM = Windows
# На Windows используем WinSCP.com для SFTP
WINSCP_PATH = "C:\Program Files (x86)\WinSCP\WinSCP.com"
DEPLOY_CMD = $(WINSCP_PATH) /script=winscp_script.txt
DRYRUN_CMD = echo "Windows: проверка SFTP-соединения..."
else
PLATFORM = Unix
# На Unix используем paramiko (SFTP). Аккаунт Jino — SFTP-only: rsync/ssh-exec
# запрещены ("exec request failed on channel 0"), поэтому deploy через
# tools/deploy_sftp.py (рекурсивный mirror + удаление лишнего).
# Венв .venv создаётся автоматически таргетом venv (нужен paramiko).
DEPLOY_CMD = .venv/bin/python tools/deploy_sftp.py
DRYRUN_CMD = .venv/bin/python tools/deploy_sftp.py --dry-run
# Пароль берётся из переменной окружения SSHPASS (см. README.md / docs/DEPLOY_INSTRUCTIONS.md)
endif
.PHONY: build deploy deploy-dry-run clean rebuild help venv
build:
hugo --minify
@echo "Сайт успешно собран в папку public/"
# ЕДИНСТВЕННЫЙ способ деплоя — через make deploy.
# Никогда не заменять на rsync/ssh-exec напрямую: на Jino аккаунт SFTP-only.
deploy: build venv
ifeq ($(PLATFORM),Windows)
$(DEPLOY_CMD)
else
@test -n "$$SSHPASS" || (echo "ОШИБКА: переменная SSHPASS (пароль SFTP) не задана. См. README.md / docs/DEPLOY_INSTRUCTIONS.md"; exit 1)
$(DEPLOY_CMD)
endif
deploy-dry-run: build venv
ifeq ($(PLATFORM),Windows)
@echo "Выполняем проверку соединения с сервером..."
$(DRYRUN_CMD)
else
@test -n "$$SSHPASS" || (echo "ОШИБКА: переменная SSHPASS (пароль SFTP) не задана. См. README.md / docs/DEPLOY_INSTRUCTIONS.md"; exit 1)
$(DRYRUN_CMD)
endif
# Создаёт venv с paramiko для Unix-деплоя (единожды)
venv:
@if [ ! -x .venv/bin/python ]; then \
echo "Создаю .venv и ставлю paramiko..."; \
python3 -m venv .venv && .venv/bin/pip install -q paramiko; \
fi
clean:
ifeq ($(OS),Windows_NT)
del /q /s public\/
else
rm -rf public/
endif
@echo "Папка public удалена"
rebuild: clean deploy
help:
@echo "Доступные команды:"
@echo " make build - собрать сайт"
@echo " make deploy - собрать и задеплоить сайт (SFTP через lftp, требуется SSHPASS)"
@echo " make deploy-dry-run - симуляция деплоя (требуется SSHPASS)"
@echo " make clean - удалить папку public"
@echo " make rebuild - полная пересборка сайта"
@echo " make help - показать это сообщение"
@echo ""
@echo "Деплой: export SSHPASS='<пароль SFTP>'; make deploy"
@echo "Пароль хранится в docs/DEPLOY_INSTRUCTIONS.md (winscp_script.txt для Windows)."