Skip to content
This repository was archived by the owner on Sep 4, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 50 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
PROJECT_DIR:=~/sandy_deploy
PROJECT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
INSTALL_DIRS:= ~/Desktop ~/Рабочий\ стол ~/.local/share/applications/

TMP_DIR:=${PROJECT_DIR}/tmp
CONFIG_DIR:=~/.config/unity3d/Darkkon/sandbox
Expand All @@ -9,51 +10,80 @@ UNPACK_LOG:=${LOG_DIR}/unpacking.log
CONFIG_BACKUP_DIR=${LOG_DIR}/config_backup-$(shell date -Iseconds)

LATEST_DOWNLOADED_PACK:=${TMP_DIR}/latest.zip
CURRENT_VERSION:=$(shell cat $(CURRENT_DIR)/version)
CURRENT_VERSION:=$$(cat $(CURRENT_DIR)/version)

SERVER:=konstantin@office.brandymint.ru
SERVER_BUILDS_PATH:=/home/konstantin/SandyAppBuilds/
SERVER_LOGS_PATH:=/home/konstantin/logs/
SERVER:=sandyapp@sandysunday.ru
SERVER_BUILDS_PATH:=/data/SandyAppBuilds/linux
SERVER_LOGS_PATH:=/home/sandyapp/logs/
NEW_LOG:=$(shell echo $$(hostname)-$$(date '+%Y-%m-%d-%H:%M:%S'))

NEWEST_FILE:=`ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)" | head -1`
GET_LATEST_NAME:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)" | head -1
LATEST_PATH:=$(shell ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)/* | head -1")

all: update watch

watch: stop_all
@echo "Запускаю версию $(CURRENT_VERSION)"
watch -b -n 1 /bin/bash -c ./current/run.sh
install:
@for dir in $(INSTALL_DIRS) ; do \
cp -vf $(PROJECT_DIR)/*.desktop --target-directory "$$dir" 2>/dev/null; \
done

watch:
@watch -b -n 1 "cd $(PROJECT_DIR) && make run"

stop_all:
@echo 'Убиваю все запущенные приложения'
@ps axfww | grep sandbox.x86_64 | grep -v grep | awk '{ print $1 }' | xargs -r kill -9
@ps axfww | grep sandbox.x86-64 | grep -v grep | awk '{ print $1 }' | xargs -r kill -9

run: stop_all
@echo "Запускаю версию $(CURRENT_VERSION)"
./current/run.sh
@echo "Запускаю версию $(CURRENT_VERSION)"; \
$(CURRENT_DIR)/run.sh || \
( \
EXIT_CODE=$$?; \
echo "Завершен с кодом $$EXIT_CODE"; \
cd $(PROJECT_DIR); \
LOG_MESSAGE=$(TMP_DIR)/message.txt; \
echo "EXIT_CODE=$$EXIT_CODE" > $$LOG_MESSAGE; \
make report LOG_PREFIX=!crash- LOG_MESSAGE=$$LOG_MESSAGE; \
exit $$EXIT_CODE; \
)

report:
scp -r config/ $(SERVER):$(SERVER_LOGS_PATH)$(hostname)-$(date '+%Y-%m-%d-%H:%M:%S')
@echo "Отправляю лог.."
$(eval LOG_NAME=$(LOG_PREFIX)$(NEW_LOG))
scp -r $(CONFIG_DIR)/ $(SERVER):$(SERVER_LOGS_PATH)$(LOG_NAME)
ifneq ($(LOG_MESSAGE), )
scp -r $(LOG_MESSAGE) $(SERVER):$(SERVER_LOGS_PATH)$(LOG_NAME)
endif
@echo $(LOG_NAME)

update: download unpack

download:
@echo "Ищу последний релиз.."
$(eval LATEST=$(shell $(GET_LATEST_NAME)))
@echo "Последний доступный релиз: $(LATEST), качаю.."
@scp $(SERVER):$(SERVER_BUILDS_PATH)$(LATEST) $(TMP_DIR)/
@rm -f $(LATEST_DOWNLOADED_PACK)
@ln -s $(TMP_DIR)/$(LATEST) $(LATEST_DOWNLOADED_PACK)
$(eval LATEST_NAME=$(notdir $(LATEST_PATH)))
# @scp $(SERVER):$(LATEST_PATH) $(TMP_DIR)/
# with rsync ssh we can see progress and dont redownload if its equals
ifeq ($(LATEST_PATH), )
@echo "Сервер недоступен, попробуйте еще раз"
else
@echo "Последний доступный релиз: $(LATEST_NAME), качаю.."
@( \
rsync --progress -e ssh $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ && \
rm -f $(LATEST_DOWNLOADED_PACK) && \
ln -s $(TMP_DIR)/$(LATEST_NAME) $(LATEST_DOWNLOADED_PACK) \
) || echo "Не удалось загрузить новую версию, попробуйте еще раз"
endif

unpack:
$(eval PACK_NAME=$(shell ls -o $(LATEST_DOWNLOADED_PACK) | grep -oE '[^/]+$$' | sed 's/.zip//' ))
# keep only last 3 unpacks with current version
@ls -dc ${RELEASES_DIR}/$(PACK_NAME)* | tail -n +3 | tr "\n" "\0" | xargs -0 rm -rf --
$(eval UNPACK_DIR=${RELEASES_DIR}/${PACK_NAME}-$(shell date -Iseconds))
@mkdir $(UNPACK_DIR)
@echo "Распаковываю в $(UNPACK_DIR) и линкую в $(CURRENT_DIR)"
@unzip $(LATEST_DOWNLOADED_PACK) -d $(UNPACK_DIR) > $(UNPACK_LOG)
@rm -f $(CURRENT_DIR)
@ln -s $(UNPACK_DIR) $(CURRENT_DIR)
@echo 'Развернул версию $(CURRENT_VERSION)'
@echo "Развернул версию $(CURRENT_VERSION)"

backup_config:
@mkdir ${CONFIG_BACKUP_DIR}
Expand Down
2 changes: 1 addition & 1 deletion Sandy.desktop
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ Type=Application
Terminal=true
Icon[en_US]=start
Name[en_US]=Sandy
Exec=/bin/bash -c /home/sandy/SandyApp/bin/start.sh
Exec=/bin/bash -c "cd ~/sandy_deploy && make || read -n 1 -s -r -p 'Неудача. Проверьте интернет соединение, чтобы приложение обновилось.'"
Name=Sandy
Icon=start