#!/bin/bash # This script is a cheesy way of injecting "large" files that I don't want to # track with LFS into S3. # > Why? # Example is I have an image that is huge ( think dozens of MB large ) that I # shrink down for the purpose of set -e usage() { cat <<- EOF $1 Required: Always make sure this is ran from the PROJECT_ROOT/main-site folder Usage: bash scripts/inject-s3.sh my-file.ext /path/to/s3/destination Example: bash scripts/inject-s3.sh ~/Downloads/big-vid.webm /video/cool-vid.webm EOF } [[ $(basename $PWD) != main-site ]] && usage && exit 1 # Ensure the target local file is real [[ ! -f "$1" ]] && usage "ERROR: Target file is not readable" && exit 1 # Ensure we are a given a destination in s3 [[ -z "$2" ]] && usage "ERROR: No S3 destination given" && exit 1 # Next check to see if we are going to overwrite the file in s3 bucket=temper.tv if aws s3api head-object --bucket $bucket --key "$2"; then echo "Found file at \"$2\", are you sure you want to overwrite? y/n" read resp if echo $resp | grep -i y; then aws s3 cp "$1" "s3://${bucket}${2}" else echo "No overwrite requested, exiting (0) now" fi else echo File location free, uploading now... aws s3 cp "$1" "s3://${bucket}${2}" fi # If we get this far it's because we found a file in place and want to ensure # we don't overwrite on accident