set -e
if test -t 1; then
ncolors=$(tput colors)
if test -n "$ncolors" && test $ncolors -ge 8; then
bold="$(tput bold)"
underline="$(tput smul)"
standout="$(tput smso)"
normal="$(tput sgr0)"
black="$(tput setaf 0)"
red="$(tput setaf 1)"
green="$(tput setaf 2)"
yellow="$(tput setaf 3)"
blue="$(tput setaf 4)"
magenta="$(tput setaf 5)"
cyan="$(tput setaf 6)"
white="$(tput setaf 7)"
fi
fi
insert_env_line() {
if [ -f "$1" ]; then
if [ -z "$(cat "$1" | grep "${ENV_LINE}")" ]; then
echo "${ENV_LINE}" >> "$1"
fi
fi
}
echo "Installing ${yellow}starkliup${normal}..."
BASE_DIR=${XDG_CONFIG_HOME:-$HOME}
STARKLI_DIR=${STARKLI_DIR-"$BASE_DIR/.starkli"}
STARKLI_BIN_DIR="$STARKLI_DIR/bin"
STARKLI_MAN_DIR="$STARKLI_DIR/share/man/man1"
STARKLI_BASH_COMPLETIONS_DIR="$STARKLI_DIR/share/bash-completions"
STARKLI_ZSH_COMPLETIONS_DIR="$STARKLI_DIR/share/zsh-completions"
BIN_URL="https://raw.githubusercontent.com/xJonathanLEI/starkli/master/starkliup/starkliup"
BIN_PATH="$STARKLI_BIN_DIR/starkliup"
ENV_PATH="$STARKLI_DIR/env"
mkdir -p $STARKLI_BIN_DIR
mkdir -p $STARKLI_MAN_DIR
mkdir -p $STARKLI_BASH_COMPLETIONS_DIR
mkdir -p $STARKLI_ZSH_COMPLETIONS_DIR
curl -# -L $BIN_URL -o $BIN_PATH
chmod +x $BIN_PATH
cat > $ENV_PATH <<EOF
#!/bin/sh
# Adds binary directory to PATH
case ":\${PATH}:" in
*:${STARKLI_BIN_DIR}:*)
;;
*)
export PATH="${STARKLI_BIN_DIR}:\$PATH"
;;
esac
# Loads completions based on shell
if [ -n "\$ZSH_NAME" ]; then
fpath=(${STARKLI_ZSH_COMPLETIONS_DIR} \$fpath)
autoload -U compinit
compinit
else
case \$SHELL in
*/bash)
if [ -f "${STARKLI_BASH_COMPLETIONS_DIR}/starkli" ]; then
. ${STARKLI_BASH_COMPLETIONS_DIR}/starkli
fi
;;
*/zsh)
fpath=(${STARKLI_ZSH_COMPLETIONS_DIR} \$fpath)
autoload -U compinit
compinit
;;
esac
fi
EOF
chmod +x $ENV_PATH
IS_SUPPORTED_SHELL=""
if [ -n "$ZSH_NAME" ]; then
IS_SUPPORTED_SHELL="1"
fi
case $SHELL in
*/bash)
IS_SUPPORTED_SHELL="1"
;;
*/fish)
IS_SUPPORTED_SHELL="1"
;;
*/ash)
IS_SUPPORTED_SHELL="1"
;;
*/zsh)
IS_SUPPORTED_SHELL="1"
;;
esac
echo
echo "${cyan}Shell detection variables (for debugging use):${normal}"
echo "${cyan}- ZSH_NAME = $ZSH_NAME${normal}"
echo "${cyan}- SHELL = $SHELL${normal}"
ENV_LINE=". \"${ENV_PATH}\""
insert_env_line "$HOME/.profile"
insert_env_line "$HOME/.bashrc"
insert_env_line "$HOME/.bash_profile"
insert_env_line "${ZDOTDIR-"$HOME"}/.zshenv"
insert_env_line "${ZDOTDIR-"$HOME"}/.zshrc"
insert_env_line "$HOME/.config/fish/config.fish"
echo
if [ -n "$IS_SUPPORTED_SHELL" ]; then
echo "Run '${yellow}. ${ENV_PATH}${normal}' or start a new terminal session to use starkliup."
echo "Then, simply run ${yellow}starkliup${normal} to install starkli."
else
echo "starkliup: could not detect shell. Add '${yellow}. ${ENV_PATH}${normal}' to your shell profile, or manually add '${yellow}${STARKLI_BIN_DIR}${normal}' to your PATH environment variable."
fi