yage
22dd6f8112
===================================================================== --- New Scripts -------------------------- - i3 window manager scrypts (see --help for more info) - zsh/i3/create-local-font-override - zsh/i3/launch-or-show --- New Features ------------------------- Now support `__select` syntax in environment files! (see zsh/scwrypts/README.md for more detail) --- Changes ------------------------------ - moved some rogue configuration files under the scwrypts config - ~/.vim/bundle/build.zsh >> ~/.config/scwrypts/vundle.zsh - ~/.config/scwrypts/config.dotfile.zsh >> ~/.config/scwrypts/dotfiles.zsh - __FZF, __FZF_TAIL, and __FZF_HEAD now create prompt+response logs --- Bug Fixes ---------------------------- - zsh/config/symlinks - don't fail when trying to symlink a directory - no longer fails when trying to replace a broken symlink - scwrypts now detects environments which are symlinked - USAGE syntax now correctly shows the position of the '--' argument delimiter support __select in env files; ignore __lower_case suffix in env files; put blank line before comments in env files added i3 scripts
44 lines
1006 B
Bash
44 lines
1006 B
Bash
__CHECK_REQUIRED_ENV() {
|
|
local VAR ERROR=0
|
|
for VAR in $*; do __CHECK_ENV_VAR $VAR || ((ERROR+=1)); done
|
|
return $ERROR
|
|
}
|
|
|
|
__CHECK_ENV_VAR() {
|
|
local NAME="$1"
|
|
[ ! $NAME ] && return 1
|
|
|
|
local OPTIONAL="$2"
|
|
local DEFAULT_VALUE="$3"
|
|
|
|
local VALUE=$(eval echo '$'$NAME)
|
|
[ $VALUE ] && return 0
|
|
|
|
local SELECTION_VALUES=$(eval echo '$'$NAME'__select' | sed 's/,/\n/g')
|
|
[ $SELECTION_VALUES ] && {
|
|
local SELECTION=$(echo $SELECTION_VALUES | __FZF "select a value for '$NAME'")
|
|
[ $SELECTION ] && export VALUE=$SELECTION
|
|
}
|
|
[ $VALUE ] && return 0
|
|
|
|
[ $__SCWRYPT ] && {
|
|
# scwrypts exclusive (missing vars staged in env.template)
|
|
local LINE="export $NAME="
|
|
|
|
grep -q -- "^$LINE" "$__ENV_TEMPLATE" || {
|
|
__STATUS 'staging new variable in template'
|
|
|
|
echo "$LINE" >> "$__ENV_TEMPLATE" \
|
|
&& __RUN_SCWRYPT zsh/scwrypts/environment/synchronize -- --no-prompt
|
|
}
|
|
}
|
|
|
|
[ $OPTIONAL ] && {
|
|
[ $DEFAULT_VALUE ] && $NAME="$DEFAULT_VALUE"
|
|
return 0
|
|
} || {
|
|
__ERROR "'$NAME' required"
|
|
return 1
|
|
}
|
|
}
|