diff --git a/docs/cn/install.sh b/docs/cn/install.sh index fcb33acfd..0c3594e04 100755 --- a/docs/cn/install.sh +++ b/docs/cn/install.sh @@ -8,26 +8,98 @@ # License: MIT license #============================================================================= - -# Reset +# Init option {{{ Color_off='\033[0m' # Text Reset -Version='0.6.0' +# terminal color template {{{ # Regular Colors -Red='\033[0;31m' -Blue='\033[0;34m' -Green='\033[0;32m' +Black='\033[0;30m' # Black +Red='\033[0;31m' # Red +Green='\033[0;32m' # Green +Yellow='\033[0;33m' # Yellow +Blue='\033[0;34m' # Blue +Purple='\033[0;35m' # Purple +Cyan='\033[0;36m' # Cyan +White='\033[0;37m' # White +# Bold +BBlack='\033[1;30m' # Black +BRed='\033[1;31m' # Red +BGreen='\033[1;32m' # Green +BYellow='\033[1;33m' # Yellow +BBlue='\033[1;34m' # Blue +BPurple='\033[1;35m' # Purple +BCyan='\033[1;36m' # Cyan +BWhite='\033[1;37m' # White + +# Underline +UBlack='\033[4;30m' # Black +URed='\033[4;31m' # Red +UGreen='\033[4;32m' # Green +UYellow='\033[4;33m' # Yellow +UBlue='\033[4;34m' # Blue +UPurple='\033[4;35m' # Purple +UCyan='\033[4;36m' # Cyan +UWhite='\033[4;37m' # White + +# Background +On_Black='\033[40m' # Black +On_Red='\033[41m' # Red +On_Green='\033[42m' # Green +On_Yellow='\033[43m' # Yellow +On_Blue='\033[44m' # Blue +On_Purple='\033[45m' # Purple +On_Cyan='\033[46m' # Cyan +On_White='\033[47m' # White + +# High Intensity +IBlack='\033[0;90m' # Black +IRed='\033[0;91m' # Red +IGreen='\033[0;92m' # Green +IYellow='\033[0;93m' # Yellow +IBlue='\033[0;94m' # Blue +IPurple='\033[0;95m' # Purple +ICyan='\033[0;96m' # Cyan +IWhite='\033[0;97m' # White + +# Bold High Intensity +BIBlack='\033[1;90m' # Black +BIRed='\033[1;91m' # Red +BIGreen='\033[1;92m' # Green +BIYellow='\033[1;93m' # Yellow +BIBlue='\033[1;94m' # Blue +BIPurple='\033[1;95m' # Purple +BICyan='\033[1;96m' # Cyan +BIWhite='\033[1;97m' # White + +# High Intensity backgrounds +On_IBlack='\033[0;100m' # Black +On_IRed='\033[0;101m' # Red +On_IGreen='\033[0;102m' # Green +On_IYellow='\033[0;103m' # Yellow +On_IBlue='\033[0;104m' # Blue +On_IPurple='\033[0;105m' # Purple +On_ICyan='\033[0;106m' # Cyan +On_IWhite='\033[0;107m' # White +# }}} + +# version +Version='0.6.0' #System name System="$(uname -s)" +# }}} + +# need_cmd {{{ need_cmd () { if ! hash "$1" &>/dev/null; then - error "需要安装 '$1' (缺少相关命令)" + error "需要 '$1' (找不到命令)" exit 1 fi } +# }}} +# success/info/error/warn {{{ msg() { printf '%b\n' "$1" >&2 } @@ -37,7 +109,7 @@ success() { } info() { - msg "${Blue}==>${Color_off} ${1}${2}" + msg "${Blue}[➭]${Color_off} ${1}${2}" } error() { @@ -48,19 +120,31 @@ error() { warn () { msg "${Red}[✘]${Color_off} ${1}${2}" } +# }}} +# echo_with_color {{{ +echo_with_color () { + printf '%b\n' "$1$2" >&2 +} +# }}} + +# fetch_repo {{{ fetch_repo () { if [[ -d "$HOME/.SpaceVim" ]]; then - info "正在更新 SpaceVim ..." - git --git-dir "$HOME/.SpaceVim/.git" pull - success "SpaceVim 更新成功!" + info "正在更新 SpaceVim..." + cd "$HOME/.SpaceVim" + git pull + cd - > /dev/null 2>&1 + success "SpaceVim 更新已完成" else - info "正在安装 SpaceVim ..." + info "正在安装 SpaceVim..." git clone https://github.com/SpaceVim/SpaceVim.git "$HOME/.SpaceVim" - success "SpaceVim 安装成功!" + success "SpaceVim 安装已完成" fi } +# }}} +# install_vim {{{ install_vim () { if [[ -f "$HOME/.vimrc" ]]; then mv "$HOME/.vimrc" "$HOME/.vimrc_back" @@ -69,154 +153,210 @@ install_vim () { if [[ -d "$HOME/.vim" ]]; then if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then - success "已为 vim 安装 SpaceVim" + success "已为 vim 安装了 SpaceVim" else mv "$HOME/.vim" "$HOME/.vim_back" success "备份 $HOME/.vim 至 $HOME/.vim_back" ln -s "$HOME/.SpaceVim" "$HOME/.vim" - success "已为 vim 安装 SpaceVim" + success "已为 vim 安装了 SpaceVim" fi else ln -s "$HOME/.SpaceVim" "$HOME/.vim" - success "已为 vim 安装 SpaceVim" + success "已为 vim 安装了 SpaceVim" fi } +# }}} +# install_package_manager {{{ install_package_manager () { if [[ ! -d "$HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim" ]]; then info "正在安装 dein.vim" git clone https://github.com/Shougo/dein.vim.git $HOME/.cache/vimfiles/repos/github.com/Shougo/dein.vim - success "dein.vim 安装成功" + success "dein.vim 安装已完成" fi } +# }}} +# install_neovim {{{ install_neovim () { + if [[ ! -d "$HOME/.config/" ]];then + mkdir "$HOME/.config/" + fi if [[ -d "$HOME/.config/nvim" ]]; then if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then - success "已为 neovim 安装 SpaceVim" + success "已为 neovim 安装了 SpaceVim" else mv "$HOME/.config/nvim" "$HOME/.config/nvim_back" success "备份 $HOME/.config/nvim 至 $HOME/.config/nvim_back" ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim" - success "已为 neovim 安装 SpaceVim" + success "已为 neovim 安装了 SpaceVim" fi else ln -s "$HOME/.SpaceVim" "$HOME/.config/nvim" - success "已为 neovim 安装 SpaceVim" + success "已为 neovim 安装了 SpaceVim" fi } +# }}} +# uninstall_vim {{{ uninstall_vim () { if [[ -d "$HOME/.vim" ]]; then if [[ "$(readlink $HOME/.vim)" =~ \.SpaceVim$ ]]; then rm "$HOME/.vim" - success "已为 vim 卸载 SpaceVim" + success "已为 vim 卸载了 SpaceVim" if [[ -d "$HOME/.vim_back" ]]; then mv "$HOME/.vim_back" "$HOME/.vim" - success "从 $HOME/.vim_back 恢复原始文件" + success "从 $HOME/.vim_back 恢复了原始配置" fi fi fi if [[ -f "$HOME/.vimrc_back" ]]; then mv "$HOME/.vimrc_back" "$HOME/.vimrc" - success "从 $HOME/.vimrc_back 恢复原始文件" + success "从 $HOME/.vimrc_back 恢复了原始配置" fi } +# }}} +# uninstall_neovim {{{ uninstall_neovim () { if [[ -d "$HOME/.config/nvim" ]]; then if [[ "$(readlink $HOME/.config/nvim)" =~ \.SpaceVim$ ]]; then rm "$HOME/.config/nvim" - success "已为 neovim 卸载 SpaceVim" + success "已为 neovim 卸载了 SpaceVim" if [[ -d "$HOME/.config/nvim_back" ]]; then mv "$HOME/.config/nvim_back" "$HOME/.config/nvim" - success "从 $HOME/.config/nvim_back 恢复原始文件" + success "从 $HOME/.config/nvim_back 恢复了原始配置" fi fi fi } +# }}} +# check_requirements {{{ check_requirements () { - info "SpaceVim 环境依赖检查:" + info "正在检测 SpaceVim 依赖环境..." if hash "git" &>/dev/null; then git_version=$(git --version) - success "检测依赖: ${git_version}" + success "检测 git 版本:${git_version}" else - warn "检测依赖 : git" + warn "缺少依赖:git" fi if hash "vim" &>/dev/null; then is_vim8=$(vim --version | grep "Vi IMproved 8.0") is_vim74=$(vim --version | grep "Vi IMproved 7.4") if [ -n "$is_vim8" ]; then - success "检测依赖: vim 8.0" + success "检测到 Vim 版本: vim 8.0" elif [ -n "$is_vim74" ]; then - success "检测依赖: vim 7.4" + success "检测到 Vim 版本: vim 7.4" else if hash "nvim" &>/dev/null; then - success "检测依赖: nvim" + success "检测到 Neovim 已安装成功" else - warn "SpaceVim 需要 vim 7.4 或更高版本" + warn "SpaceVim 需要 Neovim 或者 vim 7.4 及更高版本" fi fi if hash "nvim" &>/dev/null; then - success "检测依赖: nvim" + success "Check Requirements: nvim" + success "检测到 Neovim 已安装成功" fi else if hash "nvim" &>/dev/null; then - success "检测依赖: nvim" + success "检测到 Neovim 已安装成功" else - warn "检测依赖 : vim or nvim" + warn "SpaceVim 需要 Neovim 或者 vim 7.4 及更高版本" fi fi - info "检测终端真色支持:" + info "正在检测终端真色支持..." sh -c "$(curl -fsSL https://raw.githubusercontent.com/JohnMorales/dotfiles/master/colors/24-bit-color.sh)" } +# }}} +# usage {{{ usage () { - echo "SpaceVim 安装脚本 : V ${Version}" - echo "" - echo "使用 : curl -sLf https://spacevim.org/cn/install.sh | bash -s -- [选项] [对象]" - echo "" - echo " 这是一个 SpaceVim 初始化脚本。" - echo "" - echo "所有选项:" - echo "" - echo " -i, --install 为 Vim 和 neovim 安装 SpaceVim" - echo " -v, --version 显示当前版本" - echo " -u, --uninstall 卸载 SpaceVim" - echo " -c, --checkRequirements 检查环境依赖" - echo "" - echo "使用示例:" - echo "" - echo " 同时为 vim 和 neovim 安装 SpaceVim" - echo "" - echo " curl -sLf https://spacevim.org/install.sh | bash" - echo "" - echo " 仅为 Vim 或 neovim 安装 SpaceVim" - echo "" - echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --install vim" - echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --install neovim" - echo "" - echo " 卸载 SpaceVim" - echo "" - echo " curl -sLf https://spacevim.org/install.sh | bash -s -- --uninstall" + echo_with_color ${BWhite} "SpaceVim 安装脚本 : V ${Version}" + echo_with_color "" + echo_with_color ${Color_off} " 这是 SpaceVim 初始化脚本,可用于定制安装、更新及卸载 SpaceVim。" + echo_with_color "" + echo_with_color "使用" + echo_with_color "" + echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- [选项] [对象]" + echo_with_color "" + echo_with_color "所有选项" + echo_with_color "" + echo_with_color " -i, --install 为 vim 和 neovim 安装 SpaceVim" + echo_with_color " -v, --version 显示当前安装脚本的版本" + echo_with_color " -u, --uninstall 卸载 SpaceVim" + echo_with_color " -c, --checkRequirements 检测环境依赖" + echo_with_color "" + echo_with_color "使用示例" + echo_with_color "" + echo_with_color " 默认同时为 vim 和 neovim 安装 SpaceVim" + echo_with_color "" + echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash" + echo_with_color "" + echo_with_color " 只为 vim 或者 neovim 单独安装 SpaceVim" + echo_with_color "" + echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --install vim" + echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --install neovim" + echo_with_color "" + echo_with_color " 卸载 SpaceVim" + echo_with_color "" + echo_with_color " curl -sLf https://spacevim.org/cn/install.sh | bash -s -- --uninstall" +} +# }}} + +# install_done {{{ + +install_done () { + echo_with_color ${Yellow} "" + echo_with_color ${Yellow} "Almost done!" + echo_with_color ${Yellow} "==============================================================================" + echo_with_color ${Yellow} "== Open Vim or Neovim and it will install the plugins automatically ==" + echo_with_color ${Yellow} "==============================================================================" + echo_with_color ${Yellow} "" + echo_with_color ${Yellow} "That's it. Thanks for installing SpaceVim. Enjoy!" + echo_with_color ${Yellow} "" } +# }}} + +# welcome {{{ +welcome () { + echo_with_color ${Yellow} " /###### /## /##/## " + echo_with_color ${Yellow} " /##__ ## | ## | #|__/ " + echo_with_color ${Yellow} " | ## \__/ /###### /###### /####### /######| ## | ##/##/######/#### " + echo_with_color ${Yellow} " | ###### /##__ ##|____ ##/##_____//##__ #| ## / ##| #| ##_ ##_ ##" + echo_with_color ${Yellow} " \____ #| ## \ ## /######| ## | ########\ ## ##/| #| ## \ ## \ ##" + echo_with_color ${Yellow} " /## \ #| ## | ##/##__ #| ## | ##_____/ \ ###/ | #| ## | ## | ##" + echo_with_color ${Yellow} " | ######| #######| ######| ######| ####### \ #/ | #| ## | ## | ##" + echo_with_color ${Yellow} " \______/| ##____/ \_______/\_______/\_______/ \_/ |__|__/ |__/ |__/" + echo_with_color ${Yellow} " | ## " + echo_with_color ${Yellow} " | ## " + echo_with_color ${Yellow} " |__/ " + echo_with_color ${Yellow} " version : 0.7.0-dev by : spacevim.org " +} + +# }}} + +# download_font {{{ download_font () { url="https://raw.githubusercontent.com/wsdjeg/DotFiles/master/local/share/fonts/$1" path="$HOME/.local/share/fonts/$1" if [[ -f "$path" ]] then - success "已下载 $1" + success "Downloaded $1" else - info "正在下载 $1" - wget -q -O "$path" "$url" - success "已下载 $1" + info "Downloading $1" + curl -s -o "$path" "$url" + success "Downloaded $1" fi } +# }}} + +# install_fonts {{{ install_fonts () { if [[ ! -d "$HOME/.local/share/fonts" ]]; then mkdir -p $HOME/.local/share/fonts @@ -234,66 +374,82 @@ install_fonts () { download_font "mtextra.ttf" download_font "symbol.ttf" download_font "wingding.ttf" - echo -n "更新字体缓存 ..." + info "Updating font cache, please wait ..." if [ $System == "Darwin" ];then if [ ! -e "$HOME/Library/Fonts" ];then mkdir "$HOME/Library/Fonts" fi cp $HOME/.local/share/fonts/* $HOME/Library/Fonts/ else - fc-cache -fv - mkfontdir "$HOME/.local/share/fonts" - mkfontscale "$HOME/.local/share/fonts" + fc-cache -fv > /dev/null + mkfontdir "$HOME/.local/share/fonts" > /dev/null + mkfontscale "$HOME/.local/share/fonts" > /dev/null fi - - echo "安装完毕" + success "font cache done!" } -if [ $# -gt 0 ] -then - case $1 in - --uninstall|-u) - info "Trying to uninstall SpaceVim" - uninstall_vim - uninstall_neovim - exit 0 - ;; - --checkRequirements|-c) - check_requirements - exit 0 - ;; - --install|-i) - need_cmd 'git' - fetch_repo - if [ $# -eq 2 ] - then - case $2 in - neovim) - install_neovim - exit 0 - ;; - vim) - install_vim - exit 0 - esac - fi - install_vim - install_neovim - exit 0 - ;; - --help|-h) - usage - exit 0 - ;; - --version|-v) - msg "${Version}" - exit 0 - esac -fi -# if no argv, installer will install SpaceVim -need_cmd 'git' -fetch_repo -install_vim -install_neovim -install_package_manager -install_fonts +# }}} + +### main {{{ +main () { + if [ $# -gt 0 ] + then + case $1 in + --uninstall|-u) + info "Trying to uninstall SpaceVim" + uninstall_vim + uninstall_neovim + exit 0 + ;; + --checkRequirements|-c) + check_requirements + exit 0 + ;; + --install|-i) + welcome + need_cmd 'git' + fetch_repo + if [ $# -eq 2 ] + then + case $2 in + neovim) + install_neovim + install_done + exit 0 + ;; + vim) + install_vim + install_done + exit 0 + esac + fi + install_vim + install_neovim + install_done + exit 0 + ;; + --help|-h) + usage + exit 0 + ;; + --version|-v) + msg "${Version}" + exit 0 + esac + else + welcome + need_cmd 'git' + fetch_repo + install_vim + install_neovim + install_package_manager + install_fonts + install_done + fi +} + +# }}} + +main $@ + +# vim:set foldenable foldmethod=marker: