You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.4 KiB

8 years ago
8 years ago
  1. set -e
  2. exec 3>&1 # make stdout available as fd 3 for the result
  3. exec 1>&2 # redirect all output to stderr for logging
  4. # in_file_with_version() {
  5. # local artifacts_url=$1
  6. # local regex="(?<uri>$2)"
  7. # local version=$3
  8. #
  9. # result=$(artifactory_files "$artifacts_url" "$regex")
  10. # echo $result | jq --arg v "$version" '[foreach .[] as $item ([]; $item ; if $item.version == $v then $item else empty end)]'
  11. #
  12. # }
  13. #
  14. # retrieve current file version
  15. # e.g. curl -R -I $1
  16. check_version() {
  17. # retrieves HTTP header of file URL response
  18. local httpHeader=$(curl -R -I $1 2>&1 | grep 'Last-Modified:')
  19. # Checks if field "Last-Modified" exists in HTTP header and transform it into timestamp string
  20. # if that field is not present, return current timestamp
  21. local dateVersionFormat="%Y%m%d%H%S"
  22. local dateString=$(date +"$dateVersionFormat")
  23. if [ ! -z "$httpHeader" ]
  24. then
  25. # echo "Last-Modified information returned for targeted file. Extract date, removing day of the week string
  26. local tmpDateString=$(echo "$httpHeader" | sed -e "s/Last-Modified: //" | cut -d',' -f 2)
  27. # rfc1123Format="%d\ %b\ %Y\ %H:%M:%S\ GMT" - in order to work in boot2docker, it has to be outside of quotes in the command below
  28. local dateString=$(date +"$dateVersionFormat" -D %d\ %b\ %Y\ %H:%M:%S\ GMT -d "$tmpDateString")
  29. fi
  30. echo "[{\"ref\":\"$dateString\"}]" | jq .
  31. }