#!/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