# Определяем операционную систему 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-подобных системах используем rsync для SFTP HOST = kpa39l.myjino.ru PORT = 2222 USERNAME = kpa39l_dedinit REMOTE_PATH = /dedinit.ru endif .PHONY: build deploy deploy-dry-run clean rebuild help build: hugo --minify @echo "Сайт успешно собран в папку public/" deploy: build ifeq ($(PLATFORM),Windows) $(DEPLOY_CMD) else rsync -avz --delete -e 'ssh -p $(PORT)' public/ $(USERNAME)@$(HOST):$(REMOTE_PATH)/ endif deploy-dry-run: build ifeq ($(PLATFORM),Windows) @echo "Выполняем проверку соединения с сервером..." $(DRYRUN_CMD) else rsync -avn --delete -e 'ssh -p $(PORT)' public/ $(USERNAME)@$(HOST):$(REMOTE_PATH)/ endif 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 - собрать и задеплоить сайт" @echo " make deploy-dry-run - симуляция деплоя" @echo " make clean - удалить папку public" @echo " make rebuild - полная пересборка сайта" @echo " make help - показать это сообщение"