kopia lustrzana https://github.com/wagtail/wagtail
				
				
				
			
		
			
				
	
	
		
			130 wiersze
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			130 wiersze
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #! /bin/sh
 | |
| # vim:sw=4 ts=4 et:
 | |
| 
 | |
| BUCKET=releases.wagtail.io
 | |
| REGION=eu-west-1
 | |
| CF_DISTRIBUTION=E283SZ5CB4MDM0
 | |
| 
 | |
| # Find the location of the AWS CLI binary.  MacPorts sometimes put it in a
 | |
| # weird place, so to be helpful we check those locations as well.
 | |
| if [ -z "${AWS_CLI}" ]; then
 | |
|     for d in $(echo "${PATH}" | tr ':' ' ')                             \
 | |
|         /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin \
 | |
|         /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin \
 | |
|         ; do
 | |
|         if [ -x "${d}/aws" ]; then
 | |
|             AWS_CLI="${d}/aws"
 | |
|             break
 | |
|         fi
 | |
|     done
 | |
| 
 | |
|     if [ -z "${AWS_CLI}" ]; then
 | |
|         printf >&2 -- '%s: cannot find AWS CLI binary "aws"\n' "$0"
 | |
|         printf >&2 -- '%s: please install AWS from https://aws.amazon.com/documentation/cli/\n' "$0"
 | |
|         exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # CloudFront support in the CLI is still in beta.
 | |
| $AWS_CLI configure set preview.cloudfront true
 | |
| 
 | |
| _usage() {
 | |
|     printf >&2 -- 'usage: %s get       [output-filename]\n' "$0"
 | |
|     printf >&2 -- '       %s put       [input-filename]\n' "$0"
 | |
|     printf >&2 -- '       %s <vi|edit>\n' "$0"
 | |
| }
 | |
| 
 | |
| if [ "$#" -lt 1 ]; then
 | |
|     _usage
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| _get() {
 | |
|     if ! $AWS_CLI s3 cp --region "${REGION}" "s3://${BUCKET}/latest.txt" "$1"; then
 | |
|         printf >&2 -- "%s: failed to download latest.txt; see above messages\\n" "$0"
 | |
|         exit 1
 | |
|     fi
 | |
| }
 | |
| 
 | |
| _put() {
 | |
|     if ! $AWS_CLI s3 cp --acl public-read --region "${REGION}" "$1" "s3://${BUCKET}/latest.txt"; then
 | |
|         printf >&2 -- "%s: failed to upload latest.txt; see above messages\\n" "$0"
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     $AWS_CLI >/dev/null cloudfront create-invalidation  \
 | |
|         --distribution-id "$CF_DISTRIBUTION"            \
 | |
|         --invalidation-batch                            \
 | |
| '{
 | |
|     "Paths": {
 | |
|         "Items": [
 | |
|             "/latest.txt"
 | |
|         ],
 | |
|     "Quantity": 1
 | |
|     },
 | |
|     "CallerReference": "latest.sh"
 | |
| }'
 | |
| }
 | |
| 
 | |
| if [ "$1" = "get" ]; then
 | |
|     if [ "$#" -lt 2 ]; then
 | |
|         _usage
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     shift
 | |
| 
 | |
|     if [ -e "$2" ]; then
 | |
|         printf >&2 -- "%s: \"%s\": already exists, won't overwrite\\n" "$0"
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     _get "$@"
 | |
| elif [ "$1" = "put" ]; then
 | |
|     if [ "$#" -lt 2 ]; then
 | |
|         _usage
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     shift
 | |
| 
 | |
|     _put "$@"
 | |
| elif [ "$1" = "edit" -o "$1" = "vi" ]; then
 | |
|     LTMP=$(mktemp "${TMPDIR:-/tmp}/latest.XXXXXX")
 | |
|     if [ "$?" -ne 0 ]; then
 | |
|         printf >&2 -- '%s: cannot create temporary file\n' "$0"
 | |
|         exit 1
 | |
|     fi
 | |
|     trap 'rm -f "${LTMP}"' 0 TERM INT
 | |
| 
 | |
|     LTMP2=$(mktemp "${TMPDIR:-/tmp}/latest.XXXXXX")
 | |
|     if [ "$?" -ne 0 ]; then
 | |
|         printf >&2 -- '%s: cannot create temporary file\n' "$0"
 | |
|         exit 1
 | |
|     fi
 | |
|     trap 'rm -f "${LTMP2}"' 0 TERM INT
 | |
| 
 | |
|     if ! _get "${LTMP}"; then
 | |
|         exit 1
 | |
|     fi
 | |
|     
 | |
|     cp "${LTMP}" "${LTMP2}"
 | |
| 
 | |
|     if [ ! -z "${VISUAL}" ]; then
 | |
|         editor="${VISUAL}"
 | |
|     elif [ ! -z "${EDITOR}" ]; then
 | |
|         editor="${EDITOR}"
 | |
|     else
 | |
|         editor='vi'
 | |
|     fi
 | |
| 
 | |
|     $editor "${LTMP}"
 | |
|     if cmp "${LTMP}" "${LTMP2}" >/dev/null; then
 | |
|         printf >&2 -- '%s: no changes; exiting\n' "$0"
 | |
|         exit
 | |
|     fi
 | |
| 
 | |
|     diff -u "${LTMP2}" "${LTMP}"
 | |
|     _put "${LTMP}"
 | |
| fi
 |