-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure_vim.sh
63 lines (48 loc) · 2.04 KB
/
configure_vim.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#/!bin/bash
shopt -s expand_aliases
source $HOME/.bash_aliases
function log_and_exec(){
printf "\n$1 ..\n"
eval "$2"
printf "\nDone!\n"
}
function init_config(){
log_message='Removing previous vim configuration'
log_and_exec "$log_message" "rm -rf $HOME/.vim && rm -f $HOME/.vimrc"
log_message='Setting up the vim configuration files'
#sed cannot insert in empty files so we create one with a dummy first line
log_and_exec "$log_message" "mkdir $HOME/.vim && echo ' ' > $HOME/.vimrc"
log_message='Copying the static dotfiles into home directory'
log_and_exec "$log_message" "rm -rf $HOME/dotfiles && cp -r $1 $HOME"
}
function editor_config(){
config_text="$'\" ${3}\nlet g:${1} = \'${HOME}/dotfiles/${2}\'\nexe \'source\' g:${1}\n'"
log_and_exec "${4}" "echo -e ${config_text} | cat >> $HOME/.vimrc"
}
function setup_vim_pathogen(){
log_message='Setting up vim pathogen to manage plugins'
command="mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim"
log_and_exec "$log_message" "$command"
pathogen_config_snippet="execute pathogen#infect()\nsyntax on\nfiletype plugin indent on"
sed -i "1 i $pathogen_config_snippet" $HOME/.vimrc
}
function install_vim_plugins(){
log_message='Installing vim plugins'
export -f log_and_exec
log_and_exec "$log_message" "source $1"
}
function build_vimrc(){
local config_args_path=$( echo `dirname "${BASH_SOURCE[0]}"` )'/config_args_metadata.json'
for row in $(cat $config_args_path | jq -r '.[] | @base64'); do
_jq() {
echo ${row} | base64 --decode | jq -r ${1}
}
editor_config $(_jq '.var_name') $(_jq '.file_name') "$(_jq '.comment')" "$(_jq '.log_message')"
done
}
init_config "$HOME/customize-vim/dotfiles" #path to the dotfiles -- change if needed
setup_vim_pathogen
install_vim_plugins "$HOME/customize-vim/vim_plugins_install.sh" #path to vim plugin setup script -- change if needed
log_message='Building the vimrc file'
log_and_exec "$log_message" "build_vimrc"