diff --git a/Makefile b/Makefile index a28e041f..ad591a9e 100644 --- a/Makefile +++ b/Makefile @@ -347,7 +347,7 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-darwin-$(TA ifdef CODE_SIGN_IDENTITY ./scripts/build/electron-sign-app-darwin.sh -a $" - echo " -o " - exit 1 -} - -ARGV_APPIMAGE="" -ARGV_OUTPUT="" - -while getopts ":i:o:" option; do - case $option in - i) ARGV_APPIMAGE="$OPTARG" ;; - o) ARGV_OUTPUT="$OPTARG" ;; - *) usage ;; - esac -done - -if [ -z "$ARGV_APPIMAGE" ] || [ -z "$ARGV_OUTPUT" ]; then - usage -fi - -# Package AppImage inside a Zip to preserve the execution permissions -CWD=$(pwd) -mkdir -p "$(dirname $ARGV_OUTPUT)" -pushd "$(dirname $ARGV_APPIMAGE)" -zip "$CWD/$ARGV_OUTPUT" "$(basename $ARGV_APPIMAGE)" -popd diff --git a/scripts/build/electron-installer-zip-win32.sh b/scripts/build/tar-gz-file.sh similarity index 73% rename from scripts/build/electron-installer-zip-win32.sh rename to scripts/build/tar-gz-file.sh index 60fadbda..39efee90 100755 --- a/scripts/build/electron-installer-zip-win32.sh +++ b/scripts/build/tar-gz-file.sh @@ -19,34 +19,34 @@ set -u set -e -./scripts/build/check-dependency.sh zip +./scripts/build/check-dependency.sh tar function usage() { echo "Usage: $0" echo "" echo "Options" echo "" - echo " -a " + echo " -f " echo " -o " exit 1 } -ARGV_APPLICATION="" +ARGV_FILE="" ARGV_OUTPUT="" -while getopts ":a:o:" option; do +while getopts ":f:o:" option; do case $option in - a) ARGV_APPLICATION="$OPTARG" ;; + f) ARGV_FILE="$OPTARG" ;; o) ARGV_OUTPUT="$OPTARG" ;; *) usage ;; esac done -if [ -z "$ARGV_APPLICATION" ] || [ -z "$ARGV_OUTPUT" ]; then +if [ -z "$ARGV_FILE" ] || [ -z "$ARGV_OUTPUT" ]; then usage fi CWD=$(pwd) -pushd "$ARGV_APPLICATION" -zip -r -9 "$CWD/$ARGV_OUTPUT" * +pushd "$(dirname "$ARGV_FILE")" +tar -czvf "$CWD/$ARGV_OUTPUT" "$(basename "$ARGV_FILE")" popd diff --git a/scripts/build/electron-installer-app-zip-darwin.sh b/scripts/build/zip-file.sh similarity index 54% rename from scripts/build/electron-installer-app-zip-darwin.sh rename to scripts/build/zip-file.sh index 31218407..e4284a57 100755 --- a/scripts/build/electron-installer-app-zip-darwin.sh +++ b/scripts/build/zip-file.sh @@ -19,12 +19,6 @@ set -u set -e -OS=$(uname) -if [[ "$OS" != "Darwin" ]]; then - echo "This script is only meant to be run in OS X" 1>&2 - exit 1 -fi - ./scripts/build/check-dependency.sh zip function usage() { @@ -32,27 +26,44 @@ function usage() { echo "" echo "Options" echo "" - echo " -a " + echo " -f " + echo " -s " echo " -o " exit 1 } -ARGV_APPLICATION="" +ARGV_FILE="" ARGV_OUTPUT="" -while getopts ":a:o:" option; do +while getopts ":f:s:o:" option; do case $option in - a) ARGV_APPLICATION="$OPTARG" ;; + f) ARGV_FILE="$OPTARG" ;; + s) ARGV_OPERATING_SYSTEM="$OPTARG" ;; o) ARGV_OUTPUT="$OPTARG" ;; *) usage ;; esac done -if [ -z "$ARGV_APPLICATION" ] || [ -z "$ARGV_OUTPUT" ]; then +if [ -z "$ARGV_FILE" ] || + [ -z "$ARGV_OPERATING_SYSTEM" ] || + [ -z "$ARGV_OUTPUT" ]; then usage fi CWD=$(pwd) -pushd "$(dirname "$ARGV_APPLICATION")" -zip -r -9 "$CWD/$ARGV_OUTPUT" "$(basename "$ARGV_APPLICATION")" + +# The default unzip tool in Windows already creates a base directory +# whose name equals the zip file name excluding the extension, therefore +# the common practice for zipping directories in this platform is to +# zip their contents instead. +if [ "$ARGV_OPERATING_SYSTEM" == "win32" ] && [ -d "$ARGV_FILE" ]; then + pushd "$ARGV_FILE" + zip -r -9 "$CWD/$ARGV_OUTPUT" * + +else + pushd "$(dirname "$ARGV_FILE")" + zip -r -9 "$CWD/$ARGV_OUTPUT" "$(basename "$ARGV_FILE")" +fi + popd +