mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-14 20:40:17 -05:00
473ff70e99
[bin/cdn_upload] set the charset for stylesheets and javascript files GitOrigin-RevId: f93565ef9475595de64611e04e3f4eca118f5218
61 lines
1.5 KiB
Bash
Executable file
61 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
function upload_with_content_type() {
|
|
content_type=$1
|
|
bucket=$2
|
|
shift 2
|
|
content_type_options=""
|
|
if [[ "$content_type" != "-" ]]; then
|
|
content_type_options="-h Content-Type:${content_type};charset=utf-8"
|
|
fi
|
|
|
|
# DOCS for gsutil -- it does not have long command line flags!
|
|
## global flags
|
|
# -h NAME:VALUE add header, can occur multiples times
|
|
# -m upload with multiple threads
|
|
## rsync flags
|
|
# -r traverse into directories recursively
|
|
# -x Python regex for excluding files from the sync
|
|
gsutil \
|
|
-h "Cache-Control:public, max-age=31536000" \
|
|
${content_type_options} \
|
|
-m \
|
|
rsync \
|
|
-r \
|
|
"$@" \
|
|
"/tmp/public/" \
|
|
"${bucket}/public/"
|
|
}
|
|
function upload_into_bucket() {
|
|
bucket=$1
|
|
|
|
# stylesheets
|
|
upload_with_content_type 'text/css' "$bucket" \
|
|
-x '.+(?<!\.css)$'
|
|
|
|
# javascript files
|
|
upload_with_content_type 'application/javascript' "$bucket" \
|
|
-x '.+(?<!\.js)$'
|
|
|
|
# the rest
|
|
upload_with_content_type '-' "$bucket" \
|
|
-x '.+\.(css|js)$'
|
|
|
|
}
|
|
|
|
# Upload to staging CDN if branch is either 'master' or 'staging-master'
|
|
if [[ "$BRANCH_NAME" == "master" || "$BRANCH_NAME" == "staging-master" ]]; then
|
|
tar --directory=/tmp/ -xf build.tar
|
|
|
|
# delete source maps
|
|
find /tmp/public -name '*.js.map' -delete
|
|
|
|
upload_into_bucket $CDN_STAG
|
|
# Only upload to production CDN if branch is
|
|
if [[ "$BRANCH_NAME" == "master" ]]; then
|
|
upload_into_bucket $CDN_PROD
|
|
fi
|
|
fi
|
|
|
|
|