hyprdots/Scripts/restore_shl.sh
2024-12-10 23:54:56 +01:00

54 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
#|---/ /+---------------------------+---/ /|#
#|--/ /-| Script to configure shell |--/ /-|#
#|-/ /--| Prasanth Rangan |-/ /--|#
#|/ /---+---------------------------+/ /---|#
scrDir=$(dirname "$(realpath "$0")")
source "${scrDir}/global_fn.sh"
if [ $? -ne 0 ]; then
echo "Error: unable to source global_fn.sh..."
exit 1
fi
if chk_list "myShell" "${shlList[@]}"; then
echo -e "\033[0;32m[SHELL]\033[0m detected // ${myShell}"
else
echo "Error: user shell not found"
exit 1
fi
# add zsh plugins
if pkg_installed zsh && pkg_installed oh-my-zsh-git; then
# set variables
Zsh_rc="${ZDOTDIR:-$HOME}/.zshrc"
Zsh_Path="/usr/share/oh-my-zsh"
Zsh_Plugins="$Zsh_Path/custom/plugins"
Fix_Completion=""
# generate plugins from list
while read r_plugin; do
z_plugin=$(echo "${r_plugin}" | awk -F '/' '{print $NF}')
if [ "${r_plugin:0:4}" == "http" ] && [ ! -d "${Zsh_Plugins}/${z_plugin}" ]; then
sudo git clone "${r_plugin}" "${Zsh_Plugins}/${z_plugin}"
fi
if [ "${z_plugin}" == "zsh-completions" ] && [ "$(grep 'fpath+=.*plugins/zsh-completions/src' "${Zsh_rc}" | wc -l)" -eq 0 ]; then
Fix_Completion='\nfpath+=${ZSH_CUSTOM:-${ZSH:-/usr/share/oh-my-zsh}/custom}/plugins/zsh-completions/src'
else
[ -z "${z_plugin}" ] || w_plugin+=" ${z_plugin}"
fi
done < <(cut -d '#' -f 1 "${scrDir}/restore_zsh.lst" | sed 's/ //g')
# update plugin array in zshrc
echo -e "\033[0;32m[SHELL]\033[0m installing plugins (${w_plugin} )"
sed -i "/^plugins=/c\plugins=(${w_plugin} )${Fix_Completion}" "${Zsh_rc}"
fi
# set shell
if [[ "$(grep "/${USER}:" /etc/passwd | awk -F '/' '{print $NF}')" != "${myShell}" ]]; then
echo -e "\033[0;32m[SHELL]\033[0m changing shell to ${myShell}..."
chsh -s "$(which "${myShell}")"
else
echo -e "\033[0;33m[SKIP]\033[0m ${myShell} is already set as shell..."
fi