[ ZSH / DEPENDENCIES ] Changed environment dependency checker to be more automatic
This commit is contained in:
parent
fa9bb38462
commit
29904ac3c4
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.zsh diff
|
8
scwrypts
8
scwrypts
@ -1,14 +1,6 @@
|
||||
#!/bin/zsh
|
||||
SCWRYPTS_ROOT="${0:a:h}"
|
||||
|
||||
source "$SCWRYPTS_ROOT/zsh/common.zsh"
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
fzf \
|
||||
;
|
||||
|
||||
__CHECK_IMPORTS
|
||||
|
||||
#####################################################################
|
||||
|
||||
__RUN() {
|
||||
|
Binary file not shown.
@ -1,16 +1,13 @@
|
||||
_DEPENDENCIES+=(
|
||||
aws
|
||||
jq
|
||||
)
|
||||
_REQUIRED_ENV+=(
|
||||
_AWS_ACCOUNT
|
||||
_AWS_PROFILE
|
||||
_AWS_REGION
|
||||
)
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
aws \
|
||||
jq \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
_AWS_ACCOUNT \
|
||||
_AWS_PROFILE \
|
||||
_AWS_REGION \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
||||
_AWS() { aws --profile $_AWS_PROFILE --region $_AWS_REGION --output json $@; }
|
||||
|
@ -1,10 +1,6 @@
|
||||
_DEPENDENCIES+=(
|
||||
docker
|
||||
)
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
docker \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__STATUS "performing AWS ECR docker login"
|
||||
|
@ -1,10 +1,6 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=(
|
||||
AWS__EFS__LOCAL_MOUNT_POINT
|
||||
)
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
AWS__EFS__LOCAL_MOUNT_POINT \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
_EFS_CONNECT() {
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
_EFS_DISCONNECT() {
|
||||
|
6
zsh/aws/rds/common.zsh
Normal file
6
zsh/aws/rds/common.zsh
Normal file
@ -0,0 +1,6 @@
|
||||
_DEPENDENCIES+=(
|
||||
psql
|
||||
)
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
#####################################################################
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
_ROUTE53_BACKUP() {
|
||||
|
@ -1,10 +1,6 @@
|
||||
_DEPENDENCIES+=(
|
||||
cli53
|
||||
)
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
cli53 \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,9 +1,4 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,17 +1,13 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=(
|
||||
AWS__S3__MEDIA_TARGETS
|
||||
AWS__S3__MEDIA_BUCKET
|
||||
)
|
||||
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"
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PULL_ALL_MEDIA() {
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PUSH_ALL_MEDIA() {
|
||||
|
@ -1,3 +1,5 @@
|
||||
#####################################################################
|
||||
|
||||
[ ! $SCWRYPTS_ROOT ] && SCWRYPTS_ROOT="$(dirname ${0:a:h})"
|
||||
|
||||
source $SCWRYPTS_ROOT/.config
|
||||
@ -12,23 +14,7 @@ __NODE_VERSION=18.0.0
|
||||
|
||||
#####################################################################
|
||||
|
||||
__DEPENDENCY_ERROR=0
|
||||
__ENVIRONMENT_ERROR=0
|
||||
|
||||
source ${0:a:h}/utils/io.zsh
|
||||
source ${0:a:h}/utils/os.zsh
|
||||
source ${0:a:h}/utils/credits.zsh
|
||||
source ${0:a:h}/utils/dependencies.zsh
|
||||
source ${0:a:h}/utils/environment.zsh
|
||||
|
||||
#####################################################################
|
||||
|
||||
__CHECK_IMPORTS() {
|
||||
[[ $__DEPENDENCY_ERROR -eq 0 ]] \
|
||||
&& [[ $__ENVIRONMENT_ERROR -eq 0 ]] \
|
||||
|| __FAIL 1 'import error (see output above)' \
|
||||
;
|
||||
}
|
||||
source ${0:a:h}/utils/utils.zsh
|
||||
|
||||
#####################################################################
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__SUCCESS 'hello world!'
|
||||
|
@ -1,9 +1,4 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
3
zsh/scwrypts/configure
vendored
3
zsh/scwrypts/configure
vendored
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
[ ! -f $SCWRYPTS_CONFIG_PATH/config ] && {
|
||||
|
@ -1,9 +1,4 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PROMPT 'choose an environment to copy'
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__PROMPT 'choose an environment to delete'
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
[ $SCWRYPTS_ENV ] \
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__CHECK_ENV_VARS $@ || NOPROMPT=1 $SCWRYPTS_ROOT/zsh/scwrypts/environment/synchronize
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
[ ! $NOPROMPT ] && {
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
cd $SCWRYPTS_ROOT
|
||||
|
@ -1,9 +1,4 @@
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
cd $SCWRYPTS_ROOT
|
||||
|
@ -1,13 +1,9 @@
|
||||
_DEPENDENCIES+=(
|
||||
virtualenv
|
||||
nodeenv
|
||||
)
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/../common.zsh
|
||||
|
||||
__CHECK_DEPENDENCIES \
|
||||
virtualenv \
|
||||
nodeenv \
|
||||
;
|
||||
|
||||
__CHECK_ENV_VARS \
|
||||
;
|
||||
|
||||
#####################################################################
|
||||
|
||||
__AVAILABLE_VIRTUALENVS=(python node)
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
ENV_TYPE=$(echo $__AVAILABLE_VIRTUALENVS | sed 's/ \+/\n/' | __FZF 'select an environment to refresh')
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/zsh
|
||||
_DEPENDENCIES+=()
|
||||
_REQUIRED_ENV+=()
|
||||
source ${0:a:h}/common.zsh
|
||||
__CHECK_IMPORTS
|
||||
#####################################################################
|
||||
|
||||
__STATUS 'beginning update for all environments'
|
||||
|
@ -1,4 +1,7 @@
|
||||
__CREDITS() {
|
||||
# only applicable within scwrypts ("credits" pulled from README files)
|
||||
[ ! $SCWRYPTS_ROOT ] && return 0
|
||||
|
||||
local COMMAND="$1"
|
||||
cd $SCWRYPTS_ROOT
|
||||
cat ./**/README.md \
|
||||
|
@ -1,19 +1,15 @@
|
||||
__CHECK_DEPENDENCIES() {
|
||||
local DEPENDENCY
|
||||
for DEPENDENCY in $*
|
||||
do
|
||||
__CHECK_DEPENDENCY $DEPENDENCY || ((__DEPENDENCY_ERROR+=1))
|
||||
done
|
||||
local DEP ERROR=0
|
||||
|
||||
__CHECK_COREUTILS || ((__DEPENDENCY_ERROR+=$?))
|
||||
for DEP in $*; do __CHECK_DEPENDENCY $DEP || ((ERROR+=1)); done
|
||||
__CHECK_COREUTILS || ((ERROR+=$?))
|
||||
|
||||
return $__DEPENDENCY_ERROR
|
||||
return $ERROR
|
||||
}
|
||||
|
||||
__CHECK_DEPENDENCY() {
|
||||
local DEPENDENCY="$1"
|
||||
[ ! $DEPENDENCY ] && return 1
|
||||
|
||||
command -v $DEPENDENCY >/dev/null 2>&1 || {
|
||||
__ERROR "'$1' required but not installed. $(__CREDITS $1)"
|
||||
return 1
|
||||
|
@ -1,14 +1,7 @@
|
||||
__CHECK_ENV_VARS() {
|
||||
local OPTIONAL=0
|
||||
[[ $1 =~ ^--optional$ ]] && { shift 1; OPTIONAL=1; }
|
||||
|
||||
local VAR_NAME
|
||||
for VAR_NAME in $*
|
||||
do
|
||||
__CHECK_ENV_VAR $VAR_NAME $OPTIONAL || ((__ENVIRONMENT_ERROR+=1))
|
||||
done
|
||||
|
||||
return $__ENVIRONMENT_ERROR
|
||||
__CHECK_REQUIRED_ENV() {
|
||||
local VAR ERROR=0
|
||||
for VAR in $*; do __CHECK_ENV_VAR $VAR_NAME || ((ERROR+=1)); done
|
||||
return $ERROR
|
||||
}
|
||||
|
||||
__CHECK_ENV_VAR() {
|
||||
|
29
zsh/utils/utils.zsh
Normal file
29
zsh/utils/utils.zsh
Normal file
@ -0,0 +1,29 @@
|
||||
#####################################################################
|
||||
|
||||
_DEPENDENCIES+=(fzf) # (extensible) list of PATH dependencies
|
||||
_REQUIRED_ENV+=() # (extensible) list of required environment variables
|
||||
|
||||
#####################################################################
|
||||
|
||||
source ${0:a:h}/io.zsh
|
||||
source ${0:a:h}/os.zsh
|
||||
source ${0:a:h}/credits.zsh
|
||||
|
||||
#####################################################################
|
||||
|
||||
IMPORT_ERROR=0
|
||||
|
||||
source ${0:a:h}/dependencies.zsh
|
||||
_DEPENDENCIES=($(echo $_DEPENDENCIES | sort -u))
|
||||
__CHECK_DEPENDENCIES $_DEPENDENCIES || ((IMPORT_ERROR+=$?))
|
||||
|
||||
source ${0:a:h}/environment.zsh
|
||||
_REQUIRED_ENV=($(echo $__CHECK_REQUIRED_ENV | sort -u))
|
||||
__CHECK_REQUIRED_ENV $_REQUIRED_ENV || ((IMPORT_ERROR+=$?))
|
||||
|
||||
[[ $IMPORT_ERROR -eq 0 ]] || {
|
||||
__ERROR "encountered $IMPORT_ERROR import error(s)"
|
||||
return 1
|
||||
}
|
||||
|
||||
#####################################################################
|
Loading…
x
Reference in New Issue
Block a user