#!/bin/zsh source "$HOME/.config/wryn/env.zsh" source $ZSH_COLOR_UTIL ##################################################################### case $1 in pull ) PULL=1 ;; push ) PUSH=1 ;; esac case $2 in delete ) DELETE=1 ;; # whether or not to pass '--delete' to s3 sync # default is not to delete esac [ ! $PULL ] && [ ! $PUSH ] && FATAL 'must specify "pull" or "push"' ##################################################################### PULL_MEDIA() { local TARGET="$1" local REMOTE_TARGET="s3://$S3_SYNC_BUCKET/$1" local LOCAL_TARGET="$HOME/$1" [ ! -d $LOCAL_TARGET ] && mkdir -p $LOCAL_TARGET local DELETE="$2" [ $DELETE ] && FLAGS=--delete CHECK "downloading latest $1" aws --profile $DOTWRYN_AWS_PROFILE \ s3 sync $REMOTE_TARGET $LOCAL_TARGET \ $FLAGS >/dev/null 2>&1 \ && OK || WARN } PUSH_MEDIA() { local TARGET="$1" local REMOTE_TARGET="s3://$S3_SYNC_BUCKET/$1" local LOCAL_TARGET="$HOME/$1" local DELETE="$2" [ $DELETE ] && FLAGS=--delete CHECK "uploading $1" aws --profile $DOTWRYN_AWS_PROFILE \ s3 sync $LOCAL_TARGET $REMOTE_TARGET \ $FLAGS \ && OK || WARN } for m in $S3_SYNC_MEDIA do [ $PULL ] && PULL_MEDIA $m $DELETE [ $PUSH ] && PUSH_MEDIA $m $DELETE done