63 lines
2.1 KiB
Bash
63 lines
2.1 KiB
Bash
#! /usr/bin/env bash
|
|
|
|
# Helper function
|
|
is_sourced() {
|
|
if [ -n "$ZSH_VERSION" ]; then
|
|
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
|
|
else # Add additional POSIX-compatible shell names here, if needed.
|
|
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
|
|
fi
|
|
return 1; # NOT sourced.
|
|
}
|
|
|
|
BASE_0=${BASE_0:-$0}
|
|
BASE_SHELL=$(basename "$SHELL")
|
|
|
|
if is_sourced; then
|
|
zellij-cleanup() {
|
|
[[ -r "$HOME/bin/zellij" ]] && rm "$HOME/bin/zellij"
|
|
[[ -d "$HOME/.cache/zellij" ]] && rm -fR "$HOME/.cache/zellij"
|
|
[[ -d /tmp/zellij ]] && rm -fR /tmp/zellij
|
|
printf 'Zellij has been cleaned up, you can now reinstall it.\n'
|
|
}
|
|
zellij() {
|
|
if [[ ! -x ~/bin/zellij ]]; then
|
|
if [[ -x $HOME/.cache/chezmoi/tmp/zellij/zellij ]]; then
|
|
ln --symbolic --relative $HOME/.cache/chezmoi/tmp/zellij/zellij ~/bin
|
|
elif [[ ! -x /tmp/zellij/bootstrap/zellij ]]; then
|
|
printf "Grabbing zellij from the web!\n"
|
|
bash <(curl -sL zellij.dev/launch) "${@}" && return
|
|
fi
|
|
fi
|
|
if [[ -e /tmp/zellij/bootstrap/zellij ]]; then
|
|
mv /tmp/zellij/bootstrap/zellij ~/bin/zellij
|
|
rm -fR /tmp/zellij
|
|
fi
|
|
if [[ -x ~/bin/zellij ]]; then
|
|
~/bin/zellij "${@}"
|
|
fi
|
|
|
|
}
|
|
if [[ "${BASE_SHELL}" == "zsh" ]]; then
|
|
. <( zellij setup --generate-completion zsh | sed -Ee 's/^(_(zellij) ).*/compdef \1\2/' )
|
|
else
|
|
. <( zellij setup --generate-completion "$BASE_SHELL" )
|
|
fi
|
|
# Was needed when zsh would load
|
|
# . <( zellij setup --generate-completion "$BASE_SHELL" | sed -ne '/^function/,$p' )
|
|
if [[ -z "$ZELLIJ_SESSION_NAME" ]]; then
|
|
zellij attach -c $USER@$(hostname)
|
|
fi
|
|
|
|
elif [[ "$1" == '-' ]]; then
|
|
cat "${BASH_SOURCE[0]}"
|
|
else
|
|
SCRIPT_NAME="$BASE_0"
|
|
printf '%s\n' \
|
|
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
|
|
'The easiest way is to call it like this:' \
|
|
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
|
|
''
|
|
fi
|
|
|