mirror of
https://github.com/zdharma-continuum/zinit.git
synced 2026-09-10 07:36:38 -04:00
68 lines
2 KiB
Bash
Executable file
68 lines
2 KiB
Bash
Executable file
#!/usr/bin/env zsh
|
|
setopt NO_GLOBAL_RCS NO_GLOBAL_EXPORT NO_RCS
|
|
|
|
# Log functions [[[
|
|
function error(){ print -P "%F{red}[ERROR]%f: ${1}" && return 1; }
|
|
function info() { print -P "%F{green}[INFO]%f:%F{cyan} ${1} %f"; }
|
|
function warn() { print -P "%F{yellow}[WARN]%f: ${1}"; }
|
|
# ]]]
|
|
# Create Zunit test environment [[[
|
|
GIT_REPO=$(git rev-parse --show-toplevel)
|
|
|
|
_mktemp_cmd='mktemp'
|
|
if (( ${+commands[gmktemp]} )); then
|
|
_mktemp_cmd='gmktemp'
|
|
fi
|
|
TMP_ZUNIT=$(${_mktemp_cmd} --directory --tmpdir="${GIT_REPO}/tests/_support")
|
|
if [[ ! -d ${TMP_ZUNIT} ]]; then
|
|
error "zunit temp dir not found"
|
|
exit 1
|
|
fi
|
|
|
|
typeset -gAH ZINIT;
|
|
ZINIT[HOME_DIR]=${TMP_ZUNIT};
|
|
ZINIT[BIN_DIR]=$ZINIT[HOME_DIR]/zinit.git;
|
|
ZINIT[COMPLETIONS_DIR]=$ZINIT[HOME_DIR]/completions;
|
|
ZINIT[PLUGINS_DIR]=$ZINIT[HOME_DIR]/plugins;
|
|
ZINIT[SNIPPETS_DIR]=$ZINIT[HOME_DIR]/snippets;
|
|
ZINIT[ZCOMPDUMP_PATH]=$ZINIT[HOME_DIR]/zcompdump;
|
|
ZPFX=$ZINIT[HOME_DIR]/polaris;
|
|
|
|
command git diff > ${ZINIT[HOME_DIR]}/unstaged.diff
|
|
info 'creating test env'
|
|
git clone \
|
|
--dissociate \
|
|
--local \
|
|
--no-hardlinks \
|
|
--reference "${GIT_REPO}" \
|
|
"${GIT_REPO}" \
|
|
"${ZINIT[BIN_DIR]}"
|
|
if (( $? != 0 )); then
|
|
error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -s $ZINIT[HOME_DIR]/unstaged.diff ]]; then
|
|
(
|
|
git -C $ZINIT[BIN_DIR] apply $ZINIT[HOME_DIR]/unstaged.diff && \
|
|
chmod g-rwX "${ZINIT[HOME_DIR]}" && \
|
|
zcompile "${ZINIT[BIN_DIR]}/zinit.zsh"
|
|
)
|
|
fi
|
|
(( $? != 0 )) && { error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2; exit 1 }
|
|
|
|
{
|
|
source $ZINIT[BIN_DIR]/zinit.zsh && \
|
|
autoload -Uz _zinit && \
|
|
(( ${+_comps} )) && \
|
|
_comps[zinit]=_zinit
|
|
}
|
|
(( $? != 0 )) && { error "Unable to copy ${GIT_REPO} to ${TMP_ZUNIT}" >&2; exit 1 }
|
|
# ]]]
|
|
# Install Annexes [[[
|
|
info 'installing test dependencies'
|
|
zinit depth'1' light-mode for zdharma-continuum/zinit-annex-{'binary-symlink','default-ice'}
|
|
# ]]]
|
|
|
|
# vim:ft=zsh:sw=2:sts=2:et:foldmarker=[[[,]]]:foldmethod=marker
|