Files
scwrypts/zsh/lib/config.zsh
T

89 lines
2.5 KiB
Bash
Raw Normal View History

2023-02-21 18:44:27 -07:00
[[ $__SCWRYPT -eq 1 ]] && return 0
#####################################################################
2024-04-15 08:45:55 -06:00
SCWRYPTS_ROOT="$(cd -- ${0:a:h}; git rev-parse --show-toplevel 2>/dev/null)"
2023-02-21 18:44:27 -07:00
2024-04-15 08:45:55 -06:00
[ $SCWRYPTS_ROOT ] && [ -d "$SCWRYPTS_ROOT" ] \
|| SCWRYPTS_ROOT="$(echo "${0:a:h}" | sed -n 's|\(share/scwrypts\).*$|\1|p')"
[ $SCWRYPTS_ROOT ] && [ -d "$SCWRYPTS_ROOT" ] || {
echo "cannot determine scwrypts root path for current installation; aborting"
exit 1
}
2024-03-11 20:12:56 -06:00
2024-04-13 17:10:16 -06:00
export SCWRYPTS_ROOT__scwrypts="$SCWRYPTS_ROOT"
2024-04-15 08:45:55 -06:00
[ -f "$SCWRYPTS_ROOT__scwrypts/MANAGED_BY" ] \
&& export SCWRYPTS_INSTALLATION_TYPE=$(cat "$SCWRYPTS_ROOT__scwrypts/MANAGED_BY") \
|| export SCWRYPTS_INSTALLATION_TYPE=manual \
;
2023-02-21 18:44:27 -07:00
#####################################################################
DEFAULT_CONFIG="$SCWRYPTS_ROOT/zsh/lib/config.user.zsh"
source "$DEFAULT_CONFIG"
USER_CONFIG_OVERRIDES="$SCWRYPTS_CONFIG_PATH/config.zsh"
[ ! -f "$USER_CONFIG_OVERRIDES" ] && {
mkdir -p $(dirname "$USER_CONFIG_OVERRIDES")
cp "$DEFAULT_CONFIG" "$USER_CONFIG_OVERRIDES"
}
source "$USER_CONFIG_OVERRIDES"
2024-04-15 08:45:55 -06:00
mkdir -p \
"$SCWRYPTS_CONFIG_PATH" \
"$SCWRYPTS_DATA_PATH" \
"$SCWRYPTS_ENV_PATH" \
"$SCWRYPTS_LOG_PATH" \
"$SCWRYPTS_OUTPUT_PATH" \
;
2023-02-21 18:44:27 -07:00
export \
SCWRYPTS_GROUPS \
SCWRYPTS_CONFIG_PATH \
SCWRYPTS_DATA_PATH \
SCWRYPTS_SHORTCUT \
SCWRYPTS_ENV_SHORTCUT \
SCWRYPTS_LOG_PATH \
SCWRYPTS_OUTPUT_PATH \
;
2024-04-13 17:10:16 -06:00
SCWRYPTS_GROUPS=(scwrypts $(echo $SCWRYPTS_GROUPS | sed 's/\s\+/\n/g' | sort -u))
2023-02-21 18:44:27 -07:00
source "$SCWRYPTS_ROOT/zsh/lib/config.group.zsh" \
|| FAIL 69 'failed to set up scwrypts group; aborting'
2023-08-28 18:42:38 -06:00
#####################################################################
2023-10-30 14:23:23 -06:00
for plugin in $(ls $SCWRYPTS_ROOT__scwrypts/plugins)
do
[[ $(eval 'echo $SCWRYPTS_PLUGIN_ENABLED__'$plugin) -eq 1 ]] && {
source "$SCWRYPTS_ROOT/plugins/$plugin/$plugin.scwrypts.zsh"
}
done
2023-08-28 18:42:38 -06:00
2023-11-13 12:20:08 -07:00
#####################################################################
for GROUP_LOADER in $(env | sed -n 's/^SCWRYPTS_GROUP_LOADER__[a-z_]\+=//p')
do
[ -f "$GROUP_LOADER" ] && source "$GROUP_LOADER"
done
2023-11-13 13:16:04 -07:00
: \
&& [ ! "$SCWRYPTS_AUTODETECT_GROUP_BASEDIR" ] \
&& [ $GITHUB_WORKSPACE ] \
&& [ ! $SCWRYPTS_GITHUB_NO_AUTOLOAD ] \
2024-04-15 08:45:55 -06:00
&& SCWRYPTS_AUTODETECT_GROUP_BASEDIR="$GITHUB_WORKSPACE" \
;
2023-11-13 13:16:04 -07:00
[ "$SCWRYPTS_AUTODETECT_GROUP_BASEDIR" ] && [ -d "$SCWRYPTS_AUTODETECT_GROUP_BASEDIR" ] && {
for GROUP_LOADER in $(find "$SCWRYPTS_AUTODETECT_GROUP_BASEDIR" -type f -name \*scwrypts.zsh)
do
[ -f "$GROUP_LOADER" ] && source "$GROUP_LOADER"
done
}
2023-02-21 18:44:27 -07:00
#####################################################################
2024-04-15 08:45:55 -06:00
__SCWRYPT=1 # arbitrary; indicates currently inside a scwrypt