From 2302ac7f45396b607eb1a9f7ba1d73e6805a0145 Mon Sep 17 00:00:00 2001 From: konstantin Date: Sat, 7 Dec 2019 14:36:26 +0300 Subject: [PATCH 01/14] * sandbox exec name changed in new unity version --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index cd6b482..8f6ae0f 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ watch: stop_all 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)" From e24540e9c57a622c8b7cb42128fd9c419e7b4389 Mon Sep 17 00:00:00 2001 From: konstantin Date: Sat, 7 Dec 2019 21:37:37 +0300 Subject: [PATCH 02/14] * GET_LATEST_PATH: search by name sandbox-linux-*.zip - NEWEST_FILE : duplicate --- Makefile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 8f6ae0f..4d5a5f6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ PROJECT_DIR:=~/sandy_deploy +PACK_PREFIX:=sandbox-linux- +PACK_SUFFIX:=.zip TMP_DIR:=${PROJECT_DIR}/tmp CONFIG_DIR:=~/.config/unity3d/Darkkon/sandbox @@ -15,8 +17,7 @@ SERVER:=konstantin@office.brandymint.ru SERVER_BUILDS_PATH:=/home/konstantin/SandyAppBuilds/ SERVER_LOGS_PATH:=/home/konstantin/logs/ -NEWEST_FILE:=`ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)" | head -1` -GET_LATEST_NAME:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)" | head -1 +GET_LATEST_PATH:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK_SUFFIX) | head -1" all: update watch @@ -39,11 +40,12 @@ update: download unpack download: @echo "Ищу последний релиз.." - $(eval LATEST=$(shell $(GET_LATEST_NAME))) - @echo "Последний доступный релиз: $(LATEST), качаю.." - @scp $(SERVER):$(SERVER_BUILDS_PATH)$(LATEST) $(TMP_DIR)/ + $(eval LATEST_PATH=$(shell $(GET_LATEST_PATH))) + $(eval LATEST_NAME=$(notdir $(LATEST_PATH))) + @echo "Последний доступный релиз: $(LATEST_NAME), качаю.." + @scp $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ @rm -f $(LATEST_DOWNLOADED_PACK) - @ln -s $(TMP_DIR)/$(LATEST) $(LATEST_DOWNLOADED_PACK) + @ln -s $(TMP_DIR)/$(LATEST_NAME) $(LATEST_DOWNLOADED_PACK) unpack: $(eval PACK_NAME=$(shell ls -o $(LATEST_DOWNLOADED_PACK) | grep -oE '[^/]+$$' | sed 's/.zip//' )) From f69410497d4323a505e911bdc59810105c06f364 Mon Sep 17 00:00:00 2001 From: konstantin Date: Sat, 7 Dec 2019 21:42:25 +0300 Subject: [PATCH 03/14] * change 'scp' to 'rsync ssh' for output progress and dont redownload if files are equals --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4d5a5f6..65ca0e7 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,9 @@ download: $(eval LATEST_PATH=$(shell $(GET_LATEST_PATH))) $(eval LATEST_NAME=$(notdir $(LATEST_PATH))) @echo "Последний доступный релиз: $(LATEST_NAME), качаю.." - @scp $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ +# @scp $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ +# with rsync ssh we can see progress and dont redownload if its equals + @rsync --progress -e ssh $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ @rm -f $(LATEST_DOWNLOADED_PACK) @ln -s $(TMP_DIR)/$(LATEST_NAME) $(LATEST_DOWNLOADED_PACK) From b279a90edacc5a507e90b528debf97c2d875e88e Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 01:23:06 +0300 Subject: [PATCH 04/14] fix CURRENT_VERSION: read from the file every time, instead of at the time of launch --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 65ca0e7..0c4bc0d 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ 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/ @@ -57,7 +57,7 @@ unpack: @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} From 1209a79cab1740b6be5ad2752ec96333caaa221b Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 03:17:51 +0300 Subject: [PATCH 05/14] * update Sandy.desktop + target install --- Makefile | 6 ++++++ Sandy.desktop | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0c4bc0d..48b610c 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ PROJECT_DIR:=~/sandy_deploy PACK_PREFIX:=sandbox-linux- PACK_SUFFIX:=.zip +INSTALL_DIRS:= ~/Desktop ~/Рабочий\ стол ~/.local/share/applications/ TMP_DIR:=${PROJECT_DIR}/tmp CONFIG_DIR:=~/.config/unity3d/Darkkon/sandbox @@ -21,6 +22,11 @@ GET_LATEST_PATH:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK all: update watch +install: + @for dir in $(INSTALL_DIRS) ; do \ + cp -vf $(PROJECT_DIR)/*.desktop --target-directory "$$dir" 2>/dev/null; \ + done + watch: stop_all @echo "Запускаю версию $(CURRENT_VERSION)" watch -b -n 1 /bin/bash -c ./current/run.sh diff --git a/Sandy.desktop b/Sandy.desktop index da0f28c..e74a8c0 100755 --- a/Sandy.desktop +++ b/Sandy.desktop @@ -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" Name=Sandy Icon=start From ccf04553ebffa4f76e1f450ec9f4663277c2f848 Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 03:32:46 +0300 Subject: [PATCH 06/14] * keep only last 3 unpacks with current version --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 48b610c..df8b7d6 100644 --- a/Makefile +++ b/Makefile @@ -57,6 +57,8 @@ download: 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 +4 | xargs rm -rf -- $(eval UNPACK_DIR=${RELEASES_DIR}/${PACK_NAME}-$(shell date -Iseconds)) @mkdir $(UNPACK_DIR) @echo "Распаковываю в $(UNPACK_DIR) и линкую в $(CURRENT_DIR)" From 0d020d239fd7927e8ae13ba5676ac5b6672b3cab Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 04:04:22 +0300 Subject: [PATCH 07/14] fix report --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index df8b7d6..391daf3 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ CURRENT_VERSION:=$$(cat $(CURRENT_DIR)/version) SERVER:=konstantin@office.brandymint.ru SERVER_BUILDS_PATH:=/home/konstantin/SandyAppBuilds/ SERVER_LOGS_PATH:=/home/konstantin/logs/ +NEW_LOG:=$(shell echo $$(hostname)-$$(date '+%Y-%m-%d-%H:%M:%S')) GET_LATEST_PATH:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK_SUFFIX) | head -1" @@ -40,7 +41,8 @@ run: stop_all ./current/run.sh report: - scp -r config/ $(SERVER):$(SERVER_LOGS_PATH)$(hostname)-$(date '+%Y-%m-%d-%H:%M:%S') + @scp -r $(CONFIG_DIR)/ $(SERVER):$(SERVER_LOGS_PATH)$(NEW_LOG) + @echo $(NEW_LOG) update: download unpack From 7e5d11d75329260133ff473c274de7585cd2f228 Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 05:36:09 +0300 Subject: [PATCH 08/14] * refactoring watch --- Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 391daf3..fa30529 100644 --- a/Makefile +++ b/Makefile @@ -28,9 +28,8 @@ install: cp -vf $(PROJECT_DIR)/*.desktop --target-directory "$$dir" 2>/dev/null; \ done -watch: stop_all - @echo "Запускаю версию $(CURRENT_VERSION)" - watch -b -n 1 /bin/bash -c ./current/run.sh +watch: + watch -b -n 1 "cd $(PROJECT_DIR) && make run" stop_all: @echo 'Убиваю все запущенные приложения' From f54fd9bf36f3129dbe9011116191d17eee564fcd Mon Sep 17 00:00:00 2001 From: konstantin Date: Sun, 8 Dec 2019 06:22:04 +0300 Subject: [PATCH 09/14] + auto report on crash --- Makefile | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index fa30529..35635d7 100644 --- a/Makefile +++ b/Makefile @@ -36,12 +36,26 @@ stop_all: @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_DIR)/ $(SERVER):$(SERVER_LOGS_PATH)$(NEW_LOG) - @echo $(NEW_LOG) + @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 From 7c447f045d6af85af8d388d8ff570af561657146 Mon Sep 17 00:00:00 2001 From: konstantin Date: Fri, 13 Dec 2019 08:39:15 +0300 Subject: [PATCH 10/14] fix fail on launch 'make all' when no internet --- Makefile | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 35635d7..ace1dc0 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ SERVER_BUILDS_PATH:=/home/konstantin/SandyAppBuilds/ SERVER_LOGS_PATH:=/home/konstantin/logs/ NEW_LOG:=$(shell echo $$(hostname)-$$(date '+%Y-%m-%d-%H:%M:%S')) -GET_LATEST_PATH:=ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK_SUFFIX) | head -1" +LATEST_PATH:=$(shell ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK_SUFFIX) | head -1") all: update watch @@ -29,7 +29,7 @@ install: done watch: - watch -b -n 1 "cd $(PROJECT_DIR) && make run" + @watch -b -n 1 "cd $(PROJECT_DIR) && make run" stop_all: @echo 'Убиваю все запущенные приложения' @@ -61,14 +61,19 @@ update: download unpack download: @echo "Ищу последний релиз.." - $(eval LATEST_PATH=$(shell $(GET_LATEST_PATH))) $(eval LATEST_NAME=$(notdir $(LATEST_PATH))) - @echo "Последний доступный релиз: $(LATEST_NAME), качаю.." # @scp $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ # with rsync ssh we can see progress and dont redownload if its equals - @rsync --progress -e ssh $(SERVER):$(LATEST_PATH) $(TMP_DIR)/ - @rm -f $(LATEST_DOWNLOADED_PACK) - @ln -s $(TMP_DIR)/$(LATEST_NAME) $(LATEST_DOWNLOADED_PACK) +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//' )) From bc5e718217e14e50dfd017e3f5cd8282ef82ef8f Mon Sep 17 00:00:00 2001 From: konstantin Date: Fri, 13 Dec 2019 08:40:25 +0300 Subject: [PATCH 11/14] + notification of the user that the launch failed --- Sandy.desktop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sandy.desktop b/Sandy.desktop index e74a8c0..8da8a42 100755 --- a/Sandy.desktop +++ b/Sandy.desktop @@ -5,6 +5,6 @@ Type=Application Terminal=true Icon[en_US]=start Name[en_US]=Sandy -Exec=/bin/bash -c "cd ~/sandy_deploy && make" +Exec=/bin/bash -c "cd ~/sandy_deploy && make || read -n 1 -s -r -p 'Неудача. Проверьте интернет соединение, чтобы приложение обновилось.'" Name=Sandy Icon=start From 438547e057bff4450c3aa3ec4b89e385adf1d963 Mon Sep 17 00:00:00 2001 From: konstantin Date: Fri, 10 Jan 2020 16:21:36 +0300 Subject: [PATCH 12/14] * changed server * builds separated to folders win and linux in server/SandyAppBuilds --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index ace1dc0..17702b4 100644 --- a/Makefile +++ b/Makefile @@ -14,12 +14,12 @@ CONFIG_BACKUP_DIR=${LOG_DIR}/config_backup-$(shell date -Iseconds) LATEST_DOWNLOADED_PACK:=${TMP_DIR}/latest.zip 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:=/home/sandyapp/SandyAppBuilds/linux +SERVER_LOGS_PATH:=/home/sandyapp/logs/ NEW_LOG:=$(shell echo $$(hostname)-$$(date '+%Y-%m-%d-%H:%M:%S')) -LATEST_PATH:=$(shell ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)$(PACK_PREFIX)*$(PACK_SUFFIX) | head -1") +LATEST_PATH:=$(shell ssh $(SERVER) "ls -c $(SERVER_BUILDS_PATH)/* | head -1") all: update watch From cd9da7fb75a9e357ee77ca4d5a80248889ae2fb4 Mon Sep 17 00:00:00 2001 From: konstantin Date: Fri, 10 Jan 2020 16:27:14 +0300 Subject: [PATCH 13/14] * PROJECT_DIR changed to folder of Makefile - unused PACK_PREFIX and PACK_SUFFIX fix "keep only last 3 unpacks" for path that contains whitespace --- Makefile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 17702b4..9180e6b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,4 @@ -PROJECT_DIR:=~/sandy_deploy -PACK_PREFIX:=sandbox-linux- -PACK_SUFFIX:=.zip +PROJECT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) INSTALL_DIRS:= ~/Desktop ~/Рабочий\ стол ~/.local/share/applications/ TMP_DIR:=${PROJECT_DIR}/tmp @@ -78,7 +76,7 @@ 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 +4 | xargs rm -rf -- + @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)" From 1afd19407a0cbd80bb2a576f1eb727e8f99dd39c Mon Sep 17 00:00:00 2001 From: konstantin Date: Thu, 16 Jan 2020 15:40:25 +0300 Subject: [PATCH 14/14] * SERVER_BUILDS_PATH --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 9180e6b..8a89907 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ LATEST_DOWNLOADED_PACK:=${TMP_DIR}/latest.zip CURRENT_VERSION:=$$(cat $(CURRENT_DIR)/version) SERVER:=sandyapp@sandysunday.ru -SERVER_BUILDS_PATH:=/home/sandyapp/SandyAppBuilds/linux +SERVER_BUILDS_PATH:=/data/SandyAppBuilds/linux SERVER_LOGS_PATH:=/home/sandyapp/logs/ NEW_LOG:=$(shell echo $$(hostname)-$$(date '+%Y-%m-%d-%H:%M:%S'))