v1.0.0
===================================================================== Finally decided to port personal scripts into a standalone library. --- Release Notes ------------------------ - added support for python, zsh, and zx scripts - added support for "interactive" scripts which drop the user to a REPL - added support for passing arguments to commands - added support for python/node virtualenv management through scwrypts - added contributing and usage docs - updated zsh plugin to write commands to history - licensed under GPLv3 --- New Scripts -------------------------- zsh/scwrypts ) - configure - environment/copy - environment/delete - environment/edit - environment/synchronize - logs/clear - logs/view zsh ) - aws/ecr/login - aws/efs/mount - aws/efs/unmount - aws/route53/backup - aws/s3/media-sync/pull - aws/s3/media-sync/push python ) - redis/interactive
This commit is contained in:
34
zsh/aws/s3/media-sync/common.zsh
Normal file
34
zsh/aws/s3/media-sync/common.zsh
Normal file
@ -0,0 +1,34 @@
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
AWS__S3__MEDIA_TARGETS \
|
||||
AWS__S3__MEDIA_BUCKET \
|
||||
;
|
||||
|
||||
AWS__S3__MEDIA_TARGETS=($(echo $AWS__S3__MEDIA_TARGETS | sed 's/,/\n/g'))
|
||||
|
||||
#####################################################################
|
||||
|
||||
__SYNC_MEDIA() {
|
||||
local ACTION="$1"
|
||||
local REMOTE_TARGET="s3://$AWS__S3__MEDIA_BUCKET/$2"
|
||||
local LOCAL_TARGET="$HOME/$2"
|
||||
|
||||
local A B
|
||||
case $ACTION in
|
||||
push ) A="$LOCAL_TARGET"; B="$REMOTE_TARGET" ;;
|
||||
pull ) A="$REMOTE_TARGET"; B="$LOCAL_TARGET" ;;
|
||||
|
||||
* ) __ERROR "unknown action '$1'"; return 1 ;;
|
||||
esac
|
||||
|
||||
local FLAGS=(${@:3})
|
||||
|
||||
__STATUS "${ACTION}ing $2"
|
||||
_AWS s3 sync $REMOTE_TARGET $LOCAL_TARGET $FLAGS \
|
||||
&& __SUCCESS "$2 up-to-date" \
|
||||
|| { __ERROR "unable to sync $2 (see above)"; return 1; }
|
||||
}
|
26
zsh/aws/s3/media-sync/pull
Executable file
26
zsh/aws/s3/media-sync/pull
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/zsh
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PULL_ALL_MEDIA() {
|
||||
local FLAGS=($@)
|
||||
local FAILED_COUNT=0
|
||||
|
||||
__STATUS 'starting media download from s3'
|
||||
|
||||
local TARGET
|
||||
for TARGET in $AWS__S3__MEDIA_TARGETS
|
||||
do
|
||||
__SYNC_MEDIA pull $TARGET $FLAGS || ((FAILED_COUNT+=1))
|
||||
done
|
||||
|
||||
[[ $FAILED_COUNT -eq 0 ]] \
|
||||
&& __SUCCESS 'local media files now up-to-date' \
|
||||
|| __FAIL $FAILED_COUNT 'unable to download one or more targets' \
|
||||
;
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
__PULL_ALL_MEDIA $@
|
26
zsh/aws/s3/media-sync/push
Executable file
26
zsh/aws/s3/media-sync/push
Executable file
@ -0,0 +1,26 @@
|
||||
#!/bin/zsh
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PUSH_ALL_MEDIA() {
|
||||
local FLAGS=($@)
|
||||
local FAILED_COUNT=0
|
||||
|
||||
__STATUS 'starting media upload to s3'
|
||||
|
||||
local TARGET
|
||||
for TARGET in $AWS__S3__MEDIA_TARGETS
|
||||
do
|
||||
__SYNC_MEDIA push $TARGET $FLAGS || ((FAILED_COUNT+=1))
|
||||
done
|
||||
|
||||
[[ $FAILED_COUNT -eq 0 ]] \
|
||||
&& __SUCCESS 's3 media files now up-to-date' \
|
||||
|| __FAIL $FAILED_COUNT 'unable to upload one or more targets' \
|
||||
;
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
__PUSH_ALL_MEDIA $@
|
Reference in New Issue
Block a user