github.com/mattdotmatt/gauge@v0.3.2-0.20160421115137-425a4cdccb62/build/publish_nightly_to_bintray.sh (about) 1 #!/bin/sh 2 set -e 3 4 if [ -z "$PACKAGE" ]; then 5 echo "PACKAGE is not set" 6 exit 1 7 fi 8 9 if [ -z "$PACKAGE_TYPE" ]; then 10 echo "PACKAGE_TYPE is not set" 11 exit 1 12 fi 13 14 if [ -z "$BINTRAY_USER" ]; then 15 echo "BINTRAY_USER is not set" 16 exit 1 17 fi 18 19 if [ -z "$BINTRAY_API_KEY" ]; then 20 echo "BINTRAY_API_KEY is not set" 21 exit 1 22 fi 23 24 if [ -z "$BINTRAY_PACKAGE" ]; then 25 BINTRAY_PACKAGE="Nightly" 26 fi 27 28 if [ -z "$RENAME" ]; then 29 RENAME=0 30 fi 31 32 PACKAGE_FILE_PREFIX=$(echo $PACKAGE | tr '[:upper:]' '[:lower:]') 33 34 function setVersion () { 35 VERSION=$(ls $PACKAGE_FILE_PREFIX* | head -1 | sed "s/\.[^\.]*$//" | sed "s/$PACKAGE_FILE_PREFIX-//" | sed "s/-[a-z]*\.[a-z0-9_]*$//"); 36 } 37 38 function renameNoVersion () { 39 if [ "$NOVERSION" == "1" ]; then 40 VERSION="latest" 41 echo "Not checking for package version" 42 for f in $PACKAGE_FILE_PREFIX*; 43 do mv "$f" "`echo $f | sed s/$PACKAGE_FILE_PREFIX/$PACKAGE_FILE_PREFIX-$VERSION/`"; 44 done 45 else 46 if [ -z "$VERSION" ]; then 47 echo "Could not determine $PACKAGE version" 48 exit 1 49 fi 50 fi 51 } 52 53 function renameWithTimestamp () { 54 if [ "$RENAME" == "1" ]; then 55 CURR_DATE=$(date +"%Y-%m-%d") 56 57 for f in $PACKAGE_FILE_PREFIX*; 58 do mv "$f" "`echo $f | sed s/$VERSION/$VERSION.$PACKAGE_TYPE-$CURR_DATE/`"; 59 done 60 fi 61 } 62 63 function renameToLowerCase () { 64 for f in `ls`; do 65 mv "$f" "`echo $f | tr '[:upper:]' '[:lower:]'`" 66 done 67 } 68 69 function getPlatformFromFileName () { 70 if [ "$NOPLATFORM" == "1" ]; then 71 echo "" 72 else 73 PLATFORM=$(echo $1 | sed "s/$PACKAGE_FILE_PREFIX-//" | rev | cut -d '-' -f 1 | rev | cut -d '.' -f 1); 74 echo "$PLATFORM/" 75 fi 76 } 77 78 function bintrayUpload () { 79 for i in `ls`; do 80 PLATFORM=$( getPlatformFromFileName $i ) 81 URL="https://api.bintray.com/content/gauge/$PACKAGE/$BINTRAY_PACKAGE/$VERSION/$PLATFORM$i?publish=1&override=1" 82 83 echo "Uploading to : $URL" 84 85 RESPONSE_CODE=$(curl -T $i -u$BINTRAY_USER:$BINTRAY_API_KEY $URL -I -s -w "%{http_code}" -o /dev/null); 86 if [[ "${RESPONSE_CODE:0:2}" != "20" ]]; then 87 echo "Unable to upload, HTTP response code: $RESPONSE_CODE" 88 exit 1 89 fi 90 echo "HTTP response code: $RESPONSE_CODE" 91 done; 92 } 93 94 function bintraySetDownloads () { 95 for i in `ls`; do 96 PLATFORM=$( getPlatformFromFileName $i ) 97 URL="https://api.bintray.com/file_metadata/gauge/$PACKAGE/$PLATFORM$i" 98 99 echo "Putting $i in $PACKAGE's download list" 100 RESPONSE_CODE=$(curl -X PUT -d "{ \"list_in_downloads\": true }" -H "Content-Type: application/json" -u$BINTRAY_USER:$BINTRAY_API_KEY $URL -s -w "%{http_code}" -o /dev/null); 101 if [[ "${RESPONSE_CODE:0:2}" != "20" ]]; then 102 echo "Unable to put in download list, HTTP response code: $RESPONSE_CODE" 103 exit 1 104 fi 105 echo "HTTP response code: $RESPONSE_CODE" 106 done 107 } 108 109 function snooze () { 110 echo "\nSleeping for 30 seconds. Have a coffee..." 111 sleep 30s; 112 echo "Done sleeping\n" 113 } 114 115 function printMeta () { 116 echo "Publishing package : $PACKAGE" 117 echo "Version to be uploaded: $VERSION" 118 } 119 120 renameToLowerCase 121 setVersion 122 renameNoVersion 123 renameWithTimestamp 124 setVersion 125 printMeta 126 bintrayUpload 127 snooze 128 bintraySetDownloads