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