zshuper/modules/pluginmanager/antibody.zsh

61 lines
1.9 KiB
Bash

#
# Antibody plugin manager
#
function __zspr_antibody_download {
local DOWNLOAD_URL="https://github.com/getantibody/antibody/releases/download"
local LATEST="$(curl -s https://raw.githubusercontent.com/getantibody/homebrew-tap/master/Formula/antibody.rb | grep url | cut -f8 -d'/')"
local ANTIBODY_TMP="$(mktemp -d)"
local ANTIBODY_TGZ="${ANTIBODY_TMP}/antibody.tar.gz"
local ANTIBODY="${ANTIBODY_TMP}/antibody"
echo "Downloading Antibody $LATEST for $(uname -s)_$(uname -m), please wait..."
curl -s -L -o "${ANTIBODY_TGZ}" "${DOWNLOAD_URL}/${LATEST}/antibody_$(uname -s)_$(uname -m).tar.gz"
tar -xf "${ANTIBODY_TGZ}" -C "${ANTIBODY_TMP}"
# Move antibody to ~/.local/share/bin
test -x "${ANTIBODY}" || {
echo "Failed to find unpacked Antibody binary!"
}
mv "${ANTIBODY}" "${HOME}/.local/share/bin/antibody"
# Test if antibody works
__zspr_has_command "antibody" || echo "Could not get Antibody working!"
# Clean up
rm -rf "${ANTIBODY_TMP}"
}
function __zspr_antibody_init {
__zspr_has_command "antibody" || __zspr_antibody_download
source <(antibody init)
}
function __zspr_antibody_load_plugins {
# Iterate over array and let antibody create plugins script
for plugin in ${ZSHUPER_PLUGINS}; do echo "${plugin}"; done | antibody bundle
}
function __zspr_antibody_install_plugin {
antibody bundle "${1}"
}
function __zspr_antibody_update_plugins {
antibody update
}
function __zspr_antibody_has_plugin {
local PLUGIN="$(echo -n "${1}" | sed 's#/#-SLASH-##g')"
antibody list | grep -q "${PLUGIN}"
return $?
}
# Set up antibody as a plugin manager
ZSPR_PLM_FUNCTIONS[1]=__zspr_antibody_init
ZSPR_PLM_FUNCTIONS[2]=__zspr_antibody_load_plugins
ZSPR_PLM_FUNCTIONS[3]=__zspr_antibody_install_plugin
ZSPR_PLM_FUNCTIONS[4]=__zspr_antibody_update_plugins
ZSPR_PLM_FUNCTIONS[5]=__zspr_antibody_has_plugin