-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·163 lines (141 loc) · 5.03 KB
/
Copy pathsetup.sh
File metadata and controls
executable file
·163 lines (141 loc) · 5.03 KB
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
#!/bin/bash
USAGE_MSG="Usage:
setup.sh [flags] action
actions:
install install vimstuff
remove remove vimstuff
help show this message
flags:
--symlinks use symlinks instead of copying all the stuff to .vim directory
"
CWD=`pwd`
SCRIPT_NAME=`basename $0`
SCRIPT_DIR=`dirname $CWD/$0`
if [ ! -e "$SCRIPT_DIR/shstuff/toolkit.sh" ]; then
echo "ERROR: toolkit.sh not found! You should update submodules!" >&2
exit 1
fi
source "$SCRIPT_DIR/shstuff/toolkit.sh"
source "$SCRIPT_DIR/shstuff/libsetup.sh"
source "$SCRIPT_DIR/shstuff/stdsetupactions.sh"
source "$SCRIPT_DIR/actions.sh"
if [ $(GetLinuxDistributorId) == "mingw" ]; then
Log "MINGW detected, using windows vim paths"
IS_WIN=1
VIM_DIR="$HOME/vimfiles"
VIMRC="$HOME/_vimrc"
VIMSTUFF_VIMRC="$(cd $SCRIPT_DIR && pwd -W | sed 's#/#\\#g')\\vimrc"
FZF_DIR="$HOME/.fzf"
else
Log "MINGW not detected, using linux vim paths"
IS_WIN=0
VIM_DIR="$HOME/.vim"
VIMRC="$HOME/.vimrc"
VIMSTUFF_VIMRC="$SCRIPT_DIR/vimrc"
FZF_DIR="$HOME/.fzf"
fi
LOGGER_SCRIPTNAME="vimstuff setup"
SCRIPT_DIR=`RemoveDots $SCRIPT_DIR`
SYNTAX_FILES=`ls -1 $SCRIPT_DIR/syntax`
PATHOGEN_BUNDLES=`ls -1 $SCRIPT_DIR/pathogen_bundle`
UpdateVimHelpTags() {
Log "Updating vim help tags"
if [ -z "`ls -1A $VIM_DIR/doc | grep -vxF 'tags'`" ]; then
Log "$VIM_DIR/doc is empty, removing vim help tags"
rm $VIM_DIR/doc/tags || Log Warning "Could not remove $VIM_DIR/doc/tags"
else
vim +"helptags $VIM_DIR/doc" +"qa" && Log "Updated vim help tags" || Log Warning "Failed at updating vim help tags. You should do it manually."
fi
}
CP="Cp"
CPDIR="CpDir"
FLAGS=""
ArgParser () {
case "$1" in
"install"|"remove"|"update") ACTION=$1 ;;
"help"|"--help"|"-h") echo "$USAGE_MSG" >&2; exit 0 ;;
"--symlinks") CP="Symlink"; CPDIR="Symlink"; FLAGS="$FLAGS --symlinks" ;;
*) return 255 ;;
esac
}
ParseArguments ArgParser "$@" || { echo "$USAGE_MSG" 1>&2; exit 1; }
CreateSetup VIMSTUFF_SETUP
AddAction VIMSTUFF_SETUP MkDir "$VIM_DIR"
AddAction VIMSTUFF_SETUP MkDir "$VIM_DIR/autoload"
AddAction VIMSTUFF_SETUP MkDir "$VIM_DIR/syntax"
AddAction VIMSTUFF_SETUP MkDir "$VIM_DIR/doc"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/colors" "$VIM_DIR/colors"
if [ ! "$IS_WIN" ]; then
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/non-vim/fzf" "$FZF_DIR"
AddAction VIMSTUFF_SETUP FzfInstall "$FZF_DIR"
AddAction VIMSTUFF_SETUP $CP "$FZF_DIR/plugin/fzf.vim" "$VIM_DIR/autoload/fzf.vim"
fi
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/pathogen_bundle" "$VIM_DIR/bundle"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/pathogen/autoload/pathogen.vim" "$VIM_DIR/autoload/pathogen.vim"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/my-snippets" "$VIM_DIR/my-snippets"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/template" "$VIM_DIR/template"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/my_scripts" "$VIM_DIR/my_scripts"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/language_plugins" "$VIM_DIR/language_plugins"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/indexer_plugins" "$VIM_DIR/indexer_plugins"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/buildsystem_plugins" "$VIM_DIR/buildsystem_plugins"
AddAction VIMSTUFF_SETUP $CPDIR "$SCRIPT_DIR/vcs_plugins" "$VIM_DIR/vcs_plugins"
AddAction VIMSTUFF_SETUP $CP "$SCRIPT_DIR/keyMappings.vim" "$VIM_DIR/keyMappings.vim"
for SYNTAX_FILE in $SYNTAX_FILES; do
AddAction VIMSTUFF_SETUP $CP "$SCRIPT_DIR/syntax/$SYNTAX_FILE" "$VIM_DIR/syntax/$SYNTAX_FILE"
done
for PATHOGEN_BUNDLE in $PATHOGEN_BUNDLES; do
DOC_DIR="$SCRIPT_DIR/pathogen_bundle/$PATHOGEN_BUNDLE/doc"
if [ -d "$DOC_DIR" ]; then
for DOC_FILE in `ls -1 $DOC_DIR/*.txt`; do
DOC_FILE=`basename $DOC_FILE`
AddAction VIMSTUFF_SETUP $CP "$DOC_DIR/$DOC_FILE" "$VIM_DIR/doc/$DOC_FILE"
done
fi
done
AddAction VIMSTUFF_SETUP Patch "$VIM_DIR/bundle" -p1 fuf.patch
AddAction VIMSTUFF_SETUP Patch "$VIM_DIR/bundle" -p1 fuf_buffertag.patch
AddAction VIMSTUFF_SETUP Patch "$VIM_DIR/bundle" -p1 nerdcommenter.patch
AddAction VIMSTUFF_SETUP Patch "$VIM_DIR/bundle" -p1 javacomplete.patch
AddAction VIMSTUFF_SETUP AddVimCfgLine "$VIMRC" "source $VIMSTUFF_VIMRC"
case "x$ACTION" in
"xinstall")
if Install VIMSTUFF_SETUP; then
UpdateVimHelpTags
Log "$DELIM"
Log "vimstuff installed!"
else
Log "$DELIM"
Log Error "vimstuff failed to install!"
fi
;;
"xremove")
Uninstall VIMSTUFF_SETUP
UpdateVimHelpTags
Log "$DELIM"
Log "vimstuff removed!"
;;
"xupdate")
UpdateFunc() {
Log "Removing current revision of vimstuff"
$0 $FLAGS remove
Log "Pulling new revision from git"
git pull
if [ $? -ne 0 ]; then
$0 $FLAGS install || Log Warning "Could not install vimstuff!"
Fail "Could not pull new version!"
fi
Log "Initializing git submodules"
git submodule init || Log Warning "Could not initialize git submodules!"
Log "Updating git submodules"
git submodule update || Log Warning "Could not update git submodules!"
Log "Installing new revision of vimstuff"
$0 $FLAGS install || Fail "Could not install vimstuff!"
exit 0
}
UpdateFunc $2
;;
*)
echo "$USAGE_MSG" 1>&2
Fail "No action specified!"
;;
esac