diff --git a/source/package_assaultcube.sh b/source/package_assaultcube.sh index ac7790b1..89091725 100644 --- a/source/package_assaultcube.sh +++ b/source/package_assaultcube.sh @@ -17,7 +17,7 @@ SAVETARBALLPATH=~/AssaultCube # This will be the directory that gets packaged: PATHTOACDIR=~/AssaultCube/SVN_Trunk ABSOLUTEPATHTODOCS=~/AssaultCube/SVN_Website/htdocs/docs -NEWACVERSION=1.2.0.0_beta +NEWACVERSION=1.2.0.0 @@ -25,42 +25,54 @@ NEWACVERSION=1.2.0.0_beta ACDIRFOLDERNAME=`basename $PATHTOACDIR` # Start of the script, so remind the user of things we can't check: -echo "Did you update to head, both the packaging directory and the docs directory?" +echo -e "\033[1mDid you update to head, both the packaging directory and the docs directory?\033[0m\a" echo " * If so, press ENTER to continue, otherwise press ctrl+c to exit." read -echo "If required, did you patch the source with any relevant materials?" +echo -e "\033[1mIf required, did you patch the source with any relevant materials?\033[0m\a" echo " * Press ENTER to continue, otherwise press ctrl+c to exit." read -echo "Did you strip symobls when compiling?" +echo -e "\033[1mDid you strip symbols when compiling?\033[0m\a" echo " * If so, press ENTER to continue, otherwise press ctrl+c to exit." read -echo "Have you checked all 4 variables in this script are set correctly?" -echo -e " * The packages created by this script will be saved to this folder:\n $SAVETARBALLPATH" -echo -e " * The absolute-path to your AssaultCube directory is set as:\n $PATHTOACDIR" -echo -e " * The absolute-path to your AssaultCube \"docs\" directory is set as:\n $ABSOLUTEPATHTODOCS" -echo -e " * Your new AssaultCube version will become:\n $NEWACVERSION\n" -echo -e "\nIf these are correct, press ENTER to continue, otherwise press ctrl+c to exit." +echo -e "\033[1mHave you checked all 4 variables in this script are set correctly?\033[0m" +echo -e " * The packages created by this script will be saved to this folder:\n\E[31m $SAVETARBALLPATH \E[0m" +echo -e " * The absolute-path to your AssaultCube directory is set as:\n\E[31m $PATHTOACDIR \E[0m" +echo -e " * The absolute-path to your AssaultCube \"docs\" directory is set as:\n\E[31m $ABSOLUTEPATHTODOCS \E[0m" +echo -e " * Your new AssaultCube version will become:\n\E[31m $NEWACVERSION \E[0m\n" +echo -e "\033[1mIf these are correct, press ENTER to continue, otherwise press ctrl+c to exit.\033[0m\a" read # Still at the start of the script, so find user-errors that we can check: # Checking "$ABSOLUTEPATHTODOCS" is set correctly... -cd "$ABSOLUTEPATHTODOCS" && if [ -e ./reference.xml ]; then +if [ -e $ABSOLUTEPATHTODOCS/reference.xml ]; then echo "Stated path to AssaultCube's documentation contains \"reference.xml\"" - echo -e "Hopefully this means the contained files exist and are good.\n" + echo "Hopefully this means the path is correct and contained files are good." + echo -e "Proceeding to the next step...\n" else - echo "\"reference.xml\" did NOT exist at the stated alias." - echo "Open this shell file and modify the alias ABSOLUTEPATHTODOCS to fix it." + echo -e "\a\E[31m\033[1mERROR:\E[0m \"reference.xml\" did NOT exist at the ABSOLUTEPATHTODOCS alias." + echo "Open this shell file and modify that alias to fix it." + exit +fi + +# Checking "$PATHTOACDIR" is set correctly... +if [ -e $PATHTOACDIR/source/src/main.cpp ]; then + echo "Stated path to AssaultCube contains \"source/src/main.cpp\"" + echo "Hopefully this means the path is correct and contained files are good." + echo -e "Proceeding to the next step...\n" +else + echo -e "\a\E[31m\033[1mERROR:\E[0m \"source/src/main.cpp\" did NOT exist at the PATHTOACDIR alias." + echo "Open this shell file and modify that alias to fix it." exit fi # Check that linux binaries have been created today: -cd $PATHTOACDIR/bin_unix -BINARYFILES=`find ./linux_* -mtime 0 | sort | xargs` +BINARYFILES=`cd $PATHTOACDIR/bin_unix && find ./linux_* -mtime 0 | sort | xargs` if [ "$BINARYFILES" = "./linux_64_client ./linux_64_server ./linux_client ./linux_server" ]; then - echo -e "All binaries have todays timestamp. Proceeding to the next step...\n" + echo "All binaries have been compiled in the last 24 hours. Hopefully this means they're up to date!" + echo -e "Proceeding to the next step...\n" else - echo "Some binaries DON'T have todays timestamp. Please go compile 32/64 bit binaries." - echo "If the binaries seem fine, check that the PATHTOACDIR variable is set correctly in this shell script." + echo -e "\a\E[31m\033[1mERROR:\E[0m Timestamps on binary files are older than 24 hours." + echo "Please go compile new 32/64 bit binaries." exit fi @@ -87,13 +99,16 @@ if [[ -e ./misc/gib01/shadows.dat \ && -e ./weapons/shotgun/world/shadows.dat \ && -e ./weapons/sniper/world/shadows.dat \ && -e ./weapons/subgun/world/shadows.dat ]]; then - echo -e "All shadows.dat files exist. Proceeding to the next step...\n" + echo "All known shadows.dat files exist." + echo -e "Proceeding to the next step...\n" else - echo "Some shadows.dat files are missing. Please run AssaultCube first and generate them." + echo -e "\a\E[31m\033[1mERROR:\E[0m Some shadows.dat files are missing." + echo "Please run AssaultCube to generate these files." exit fi # Clean out crufty files: +echo "Please wait: Cleaning out some crufty files..." cd $PATHTOACDIR/source/enet && make distclean cd ../src && make clean cd ../../config && rm -f init.cfg killmessages.cfg saved.cfg servers.cfg @@ -103,12 +118,22 @@ rm -f ./packages/maps/*.cgz rm -f ./screenshots/* # Copy docs over: +echo "Copied documentation into the main folder..." cd $PATHTOACDIR && cp $ABSOLUTEPATHTODOCS/* $PATHTOACDIR/docs/ -R +# Show us modified files: +echo -e "\nPlease wait: Checking if any \"extra\" crufty files exist..." +cd $PATHTOACDIR && svn status +echo -e "\n\033[1mThe above is a list of modified/extra files/folders.\033[0m\a" +echo " * If everything is OK, press ENTER to continue. Otherwise press ctrl+c to exit." +read + # Set up ./config/docs.cfg - just in-case: +echo "... Generating ./config/docs.cfg" xsltproc -o ./config/docs.cfg ./docs/xml/cuberef2cubescript.xslt ./docs/reference.xml # Set up ./config/securemaps.cfg - just in-case: +echo "... Generating ./config/securemaps.cfg" echo "resetsecuremaps" > ./config/securemaps.cfg find ./packages/maps/official/*.cgz | \ xargs -i basename {} .cgz | \ @@ -118,6 +143,7 @@ find ./packages/maps/official/*.cgz | \ # Set up ./config/releasefiles.cfg - just in-case: # We should be forcing good standards, so don't worry about upper-case # extensions or leaving stuff out that isn't normally in the configs. +echo "... Generating ./config/releasefiles.cfg" find ./packages/audio/ambience ./packages/textures -type f \ -name "*.jpg" \ -o -name "*.png" \ @@ -134,6 +160,7 @@ find ./packages/textures/skymaps/* -type f -name "*.jpg" | \ gawk -F'\\./' '{print $2}' >> ./config/releasefiles.cfg # Create the linux tarball: +echo -e "\n... Creating the Linux tarball..." cd .. && mv $ACDIRFOLDERNAME AssaultCube_v$NEWACVERSION tar cjvf $SAVETARBALLPATH/AssaultCube_v$NEWACVERSION.tar.bz2 \ --exclude=*.bat --exclude=*bin_win32* \ @@ -143,6 +170,7 @@ tar cjvf $SAVETARBALLPATH/AssaultCube_v$NEWACVERSION.tar.bz2 \ AssaultCube_v$NEWACVERSION/ # Create the source tarball: +echo -e "\n... Creating the Source tarball..." mv AssaultCube_v$NEWACVERSION/ AssaultCube_v$NEWACVERSION.source/ tar cjvf $SAVETARBALLPATH/AssaultCube_v$NEWACVERSION.source.tar.bz2 \ --exclude-vcs \ @@ -150,6 +178,7 @@ tar cjvf $SAVETARBALLPATH/AssaultCube_v$NEWACVERSION.source.tar.bz2 \ mv AssaultCube_v$NEWACVERSION.source/ $ACDIRFOLDERNAME/ # Clean up: -rm -Rf $PATHTOACDIR/docs/* +rm -Rf $PATHTOACDIR/docs/* && echo -e "\n... Deleted all files in ./docs..." cd $PATHTOACDIR/packages/models && rm -f `(find . -type f -name "shadows.dat")` +echo "... Deleted shadows.dat files. Packaging finished!"