|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +function help() { |
| 4 | + echo "Usage: $(basename "$0") [-quiet]" |
| 5 | + echo "Options:" |
| 6 | + echo " -quiet: building scheme in quiet mode" |
| 7 | + echo " -h, --help: display this help" |
| 8 | + echo "Examples:" |
| 9 | + echo " $(basename "$0") -quiet" |
| 10 | + exit 0 |
| 11 | +} |
| 12 | + |
| 13 | +SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| 14 | +PROJ_DIR="$(dirname "$SCRIPT_DIR")" |
| 15 | +ARTIFACTS_DIR="$PROJ_DIR/artifacts" |
| 16 | + |
| 17 | +QUIET="" |
| 18 | + |
| 19 | +while [ $# -gt 0 ] |
| 20 | +do |
| 21 | + case "$1" in |
| 22 | + -quiet) |
| 23 | + QUIET="-quiet" |
| 24 | + shift |
| 25 | + ;; |
| 26 | + -h|--help) |
| 27 | + help |
| 28 | + ;; |
| 29 | + *) |
| 30 | + echo "Unknown input parameter \"$1\". Run with --help or -h for help." |
| 31 | + exit 1 |
| 32 | + ;; |
| 33 | + esac |
| 34 | +done |
| 35 | + |
| 36 | +check_utility_result() |
| 37 | +{ |
| 38 | + RESULT="$1" |
| 39 | + if [ $RESULT != 0 ]; then |
| 40 | + exit $RESULT |
| 41 | + fi |
| 42 | +} |
| 43 | + |
| 44 | +add_artifact() |
| 45 | +{ |
| 46 | + ARTIFACT="$1" |
| 47 | + mkdir -p "$ARTIFACTS_DIR" |
| 48 | + mv "$ARTIFACT" "$ARTIFACTS_DIR" |
| 49 | +} |
| 50 | + |
| 51 | +buildAndArchive() |
| 52 | +{ |
| 53 | + echo "------------ BUILD ------------" |
| 54 | + PROJECT="$PROJ_DIR/PermissionsKit.xcodeproj" |
| 55 | + SCHEME="PermissionsKit" |
| 56 | + BUILD_CONFIG="Release" |
| 57 | + DEBUG_INFORMATION_FORMAT="dwarf-with-dsym" |
| 58 | + SKIP_OBFUSCATION="NO" |
| 59 | + |
| 60 | + if [ ! -z "$QUIET" ]; then |
| 61 | + echo "Building scheme in quiet mode..." |
| 62 | + echo "\tCONFIGURATION = $BUILD_CONFIG" |
| 63 | + echo "\tDEBUG_INsFORMATION_FORMAT = $DEBUG_INFORMATION_FORMAT" |
| 64 | + echo "\tSKIP_OBFUSCATION = $SKIP_OBFUSCATION" |
| 65 | + fi |
| 66 | + |
| 67 | + xcodebuild clean build \ |
| 68 | + $QUIET \ |
| 69 | + -project "$PROJECT" \ |
| 70 | + -scheme "$SCHEME" \ |
| 71 | + -configuration "$BUILD_CONFIG" \ |
| 72 | + DEBUG_INFORMATION_FORMAT="$DEBUG_INFORMATION_FORMAT" \ |
| 73 | + SKIP_OBFUSCATION=$SKIP_OBFUSCATION |
| 74 | + check_utility_result $? |
| 75 | + |
| 76 | + PRODUCTS_DIR=$(xcodebuild -project "$PROJECT" \ |
| 77 | + -scheme "$SCHEME" \ |
| 78 | + -configuration "$BUILD_CONFIG" \ |
| 79 | + -showBuildSettings \ |
| 80 | + | grep "BUILT_PRODUCTS_DIR" \ |
| 81 | + | grep -oEi "\/.*") |
| 82 | + |
| 83 | + echo "PRODUCTS_DIR = $PRODUCTS_DIR" |
| 84 | + cd "$PRODUCTS_DIR" |
| 85 | + |
| 86 | + ARTIFACTS=("PermissionsKit.framework" \ |
| 87 | + "PermissionsKit.framework.dSYM") |
| 88 | + for ARTIFACT in "${ARTIFACTS[@]}" |
| 89 | + do |
| 90 | + if [ -e "$ARTIFACT" ]; then |
| 91 | + zip -r -y "$ARTIFACT.zip" "$ARTIFACT"; check_utility_result $? |
| 92 | + add_artifact "$ARTIFACT.zip"; check_utility_result $? |
| 93 | + fi |
| 94 | + done |
| 95 | +} |
| 96 | + |
| 97 | +rm -rf "$ARTIFACTS_DIR" |
| 98 | +buildAndArchive |
| 99 | + |
| 100 | +echo "Finished successfuly" |
| 101 | +exit 0 |
0 commit comments