changeset 453:4cccb13bf406 prerelease

Minor edits to Makefile
author Giulio Moro <giuliomoro@yahoo.it>
date Sun, 19 Jun 2016 22:36:38 +0100
parents 7b63e3295343
children 1d66b4e8ced9
files Makefile scripts/update_board
diffstat 2 files changed, 19 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Sun Jun 19 21:27:37 2016 +0100
+++ b/Makefile	Sun Jun 19 22:36:38 2016 +0100
@@ -307,9 +307,10 @@
 
 BELA_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 UPDATES_DIR?=/root/Bela/updates
-UPDATE_SOURCE_DIR?=/tmp/belaUpdate
+UPDATE_SOURCE_DIR_BASE?=/tmp/belaUpdate
+UPDATE_SOURCE_DIR=$(UPDATE_SOURCE_DIR_BASE)/Bela
 UPDATE_REQUIRED_PATHS?=scripts include core scripts/update_board 
-UPDATE_BELA_TEMP?=/tmp/belaTemp
+UPDATE_BELA_PATCH?=/tmp/belaPatch
 UPDATE_BELA_BACKUP?=/tmp/belaBak
 UPDATE_BELA_MV_BACKUP?=/tmp/belaMvBak
 
@@ -321,16 +322,17 @@
 	@cd $(UPDATES_DIR) && COUNT=`ls -l *.zip | wc -l` && [ $$COUNT -eq 1 ] && rm -rf `ls | grep -v "\.zip$$"`
 	@#TODO: heuristics on available space. Use unzip -l and df
 	@echo uncompressed size: `unzip -l \`ls $(UPDATES_DIR)/*.zip\` | tail -n1 | awk '{print $$1}'`
-	# Delete and re-create the temp directory (first, make sure it is not empty!!)
-	@[ -n $(UPDATE_SOURCE_DIR) ] && rm -rf $(UPDATE_SOURCE_DIR) && mkdir -p $(UPDATE_SOURCE_DIR)
+	# Delete and re-create the temp directory (first, make sure it is not an empty string!)
+	@[ -n $(UPDATE_SOURCE_DIR_BASE) ] && rm -rf $(UPDATE_SOURCE_DIR_BASE) && mkdir -p $(UPDATE_SOURCE_DIR_BASE)
 	# Unzip the contents to the temp folder
-	@cd $(UPDATE_SOURCE_DIR) && unzip -qq $(UPDATES_DIR)/*zip
-	# Strip the top-level folder ( if there is only one )
-	@DIR=`ls -d $(UPDATE_SOURCE_DIR)` && COUNT=`echo $$DIR | wc -l` &&\
+	@cd $(UPDATE_SOURCE_DIR_BASE) && unzip -qq $(UPDATES_DIR)/*zip
+# Strip the top-level folder ( if there is only one )
+#@DIR=`ls -d $(UPDATE_SOURCE_DIR)` && COUNT=`echo $$DIR | wc -l` &&\
 	  [ $$COUNT -eq 1 ] && mv $(UPDATE_SOURCE_DIR)/* /tmp/supertemp && rm -rf $(UPDATE_SOURCE_DIR) && mv /tmp/supertemp $(UPDATE_SOURCE_DIR)
 	# Now actually check if some key-files and folders are there
 	@cd $(UPDATE_SOURCE_DIR) && FAIL=0 && for path in $(UPDATE_REQUIRED_PATHS); do `ls $$path >/dev/null 2>&1` || { FAIL=1; break; }; done;\
 	  [ $$FAIL -eq 0 ] || { echo "$$path was not found in the zip archive. Maybe it is corrupted?"; exit 1; }
+	# Success. You can continue the install with "make update"
 UPDATE_LOG?=~/update.log
 LOG=>> $(UPDATE_LOG) 2>&1
 update: ## Installs the update from $(UPDATES_DIR)
@@ -341,28 +343,26 @@
 	# Now actually check if some key-files and folders are there
 	@cd $(UPDATE_SOURCE_DIR) && FAIL=0 && for path in $(UPDATE_REQUIRED_PATHS); do `ls $$path >/dev/null 2>&1` || { FAIL=1; break; }; done;\
 	  [ $$FAIL -eq 0 ] || { echo "$$path was not found in the zip archive. Maybe it is corrupted?"; exit 1; }
-	# Duplicate the Bela folder $(BELA_DIR) to $(UPDATE_BELA_TEMP)
-	@[ -n $(UPDATE_BELA_TEMP) ] && mkdir -p $(UPDATE_BELA_TEMP)
+	# Duplicate the Bela folder $(BELA_DIR) to $(UPDATE_BELA_PATCH) ...
+	@[ -n $(UPDATE_BELA_PATCH) ] && mkdir -p $(UPDATE_BELA_PATCH)
 	@#TODO: this would allow to trim trailing slashes in case we want to be safer: a="`pwd`/" ; target=${a%/} ; echo $target
-	@rsync -a --delete-before $(BELA_DIR)/ $(UPDATE_BELA_TEMP)
-	# Also back it up in $(UPDATE_BELA_BACKUP). 
+	@rsync -a --delete-before $(BELA_DIR)/ $(UPDATE_BELA_PATCH)
+	# Also backing it up in $(UPDATE_BELA_BACKUP)...
 	@[ -n $(UPDATE_BELA_BACKUP) ] && mkdir -p $(UPDATE_BELA_BACKUP)
 	@rsync -a $(BELA_DIR)/ $(UPDATE_BELA_BACKUP)
-	@#TODO: add command line switch for update_board which avoids useless stuff (e.g.: setting the date, start/stop the IDE)
-	@cd $(UPDATE_SOURCE_DIR)/scripts && BBB_ADDRESS=root@127.0.0.1 BBB_BELA_HOME=$(UPDATE_BELA_TEMP) ./update_board -y 
-	# If everything went ok, we now have the updated version of $(BELA_DIR) in $(UPDATE_BELA_TEMP) and a backup of $(BELA_DIR) in $(UPDATE_BELA_BACKUP)
-	# So let's operate the magic swap. $(BELA_DIR) is moved to $(UPDATE_BELA_MV_BACKUP) and $(UPDATE_BELA_TEMP) is moved to $(BELA_DIR).
+	# Here's the trick: we run "update_board" ssh'ing into the BeagleBone itself! 
+	@cd $(UPDATE_SOURCE_DIR)/scripts && BBB_ADDRESS=root@127.0.0.1 BBB_BELA_HOME=$(UPDATE_BELA_PATCH) ./update_board -y --no-frills
+	# If everything went ok, we now have the updated version of $(BELA_DIR) in $(UPDATE_BELA_PATCH) and a backup of $(BELA_DIR) in $(UPDATE_BELA_BACKUP)
+	# So let's operate the magic swap. $(BELA_DIR) is moved to $(UPDATE_BELA_MV_BACKUP) and $(UPDATE_BELA_PATCH) is moved to $(BELA_DIR).
 	# If something goes wrong at thie stage, you can always find your old $(BELA_DIR) folder at $(UPDATE_BELA_BACKUP)
 	# The fun part is that this Makefile is moved as well...
 	# We are about to kill the IDE, so just in case you are running this from within the IDE, we run the remainder of this update in a screen.
 	# Output will be logged to $(UPDATE_LOG)
 	@screen -S update-Bela -d -m bash -c '\
-	  echo so let us just make a backup of the Makefile we are working on TODO: remove this one $(LOG);\
-	  cp $(BELA_DIR)/Makefile /tmp/ $(LOG) &&\
 	  [ -n $(UPDATE_BELA_MV_BACKUP) ] $(LOG) && rm -rf $(UPDATE_BELA_MV_BACKUP) $(LOG) &&\
 	  echo Kill the IDE $(LOG) && \
 	  $(MAKE) --no-print-directory idestop $(LOG) &&\
-	  mv $(BELA_DIR) $(UPDATE_BELA_MV_BACKUP) $(LOG) && mv $(UPDATE_BELA_TEMP) $(BELA_DIR) $(LOG) &&\
+	  mv $(BELA_DIR) $(UPDATE_BELA_MV_BACKUP) $(LOG) && mv $(UPDATE_BELA_PATCH) $(BELA_DIR) $(LOG) &&\
 	  echo Hope we are still alive here $(LOG) &&\
 	  echo Restart the IDE $(LOG) &&\
 	  make --no-print-directory -C $(BELA_DIR) idestart $(LOG) &&\
--- a/scripts/update_board	Sun Jun 19 21:27:37 2016 +0100
+++ b/scripts/update_board	Sun Jun 19 22:36:38 2016 +0100
@@ -178,7 +178,7 @@
 else
   # run the IDE 
   [ $FULL -eq 1 ] && ssh $BBB_ADDRESS "make -C $BBB_BELA_HOME --no-print-directory idestart"
-  [ $FULL -eq 1 ] && echo "The Bela core files were updated the board, but a valid IDE folder was not found in $IDE_FOLDER/, so the IDE was not updated. If there was an older version of the IDE on the board, it is being restarted.
+  [ $FULL -eq 1 ] && echo "The Bela core files were updated on the board, but a valid IDE folder was not found in $IDE_FOLDER/, so the IDE was not updated. If there was an older version of the IDE on the board, it is being restarted.
 You can get a copy of the most up-to-date IDE files from https://github.com/LBDonovan/bela-ide
 "
 fi