-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathinstall.sh
executable file
·156 lines (134 loc) · 4 KB
/
install.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
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
#!/bin/bash
homedir=$HOME
#homedir=./test
vimdir=$homedir/.vim
vodir=$vimdir/vimoutliner
OS=`uname`
#BACKUP FILE NAMES
bext=`date +_%T_%F.old`
if [ $OS == Linux ] ; then
backupargs="-bS $bext"
elif [ $OS == FreeBSD ] ; then
backupargs="-bB $bext"
else backupargs="";
fi
#SOME FUNCTIONS
function sure? {
read -p" (y/N)? "
echo
test $REPLY = "y" || test $REPLY = "Y"
}
function make_dir {
test -d $1 || {
echo " creating: $1"
mkdir $1
created=1
}
}
function copyfile {
echo " installing: $2/$1"
install $backupargs $1 $2/$1
}
function copydir {
files=`ls $1`
for i in $files; do
echo " installing: $2/$i"
install $backupargs $1/$i $2
done
}
#START THE INSTALL
cat <<EOT
Vim Outliner Installation
This script is safe for installing Vim Outliner and for upgrading an
existing Vim Outliner installation. Existing files will be backed-up
with this extension: $bext. This will simplify
recovery of any of the old files.
EOT
echo -n "Would you like to continue "
sure? || exit
#CREATE NECESSARY DIRECTORIES
created=0
echo checking/creating needed directories
make_dir $vimdir
make_dir $vimdir/plugin
make_dir $vimdir/syntax
make_dir $vimdir/ftplugin
make_dir $vimdir/ftdetect
make_dir $vimdir/doc
make_dir $vimdir/colors
make_dir $vodir
make_dir $vodir/scripts
if [ $created -eq 0 ]; then echo " none created"; fi
#TWEAK .vimrc
modified=0
echo checking/creating/modifying $homedir/.vimrc
test -f $homedir/.vimrc || { echo " creating $homedir/.vimrc"
touch $homedir/.vimrc
}
egrep -lq "filetype[[:space:]]+plugin[[:space:]]+indent[[:space:]]+on" $homedir/.vimrc || \
{ modified=1
echo "filetype plugin indent on" >> $homedir/.vimrc
}
egrep -lq "syntax[[:space:]]+on" $homedir/.vimrc || \
{ modified=1
echo "syntax on" >> $homedir/.vimrc
}
if [ $modified -eq 0 ] ; then
echo " not modified";
else
echo " modifying $homedir/.vimrc"
fi
#TWEAK .vim/filetype.vim
modified=0
echo checking/creating/modifying $homedir/.vim/filetype.vim
test -f $homedir/.vim/filetype.vim || \
{ echo " creating $homedir/.vim/filetype.vim"
touch $homedir/.vim/filetype.vim
}
egrep -lq "runtime\! ftdetect/\*.vim" $homedir/.vim/filetype.vim || \
{ echo " modifying $homedir/.vim/filetype.vim"
modified=1
echo "runtime! ftdetect/*.vim" >> $homedir/.vim/filetype.vim
}
if [ $modified -eq 0 ] ; then echo " not modified"; fi
#COPY FILES AND BACKUP ANY EXISTING FILES
echo "installing files and making backups if necessary (*$bext)"
copyfile syntax/vo_base.vim $vimdir
copyfile ftplugin/vo_base.vim $vimdir
copyfile ftdetect/vo_base.vim $vimdir
copyfile doc/vo_readme.txt $vimdir
copyfile colors/vo_dark.vim $vimdir
copyfile colors/vo_light.vim $vimdir
copyfile scripts/vo_maketags.pl $vodir
cp -f vimoutlinerrc .vimoutlinerrc
copyfile .vimoutlinerrc $homedir
#INCORPORATE DOCS
echo installing documentation
vim -c "helptags $HOME/.vim/doc" -c q
#INSTALL THE ADD-ONS
cat <<EOT
Add-ons
There are optional Vim Outliner plugins to handle hoisting and
checkboxes and a script to convert a Vim Outliner .otl file
to an html file. If installed, they must be enabled in the
.vimoutlinerrc file in your home directory. These files will be
stored in $vodir/plugins and
$vodir/scripts.
EOT
echo -n "Would you like to install these "
if sure?; then
echo installing add-ons
copydir plugin $vimdir/plugin
copydir add-ons/scripts $vodir/scripts
fi
#ALL DONE
echo installation complete
cat <<EOT
**********************************************************************
* For help about Vim Outliner simply exececute "help vo" from within *
* vim. *
* *
* Additional scripts and plugins are available on the Vim Outliner *
* website: www.vimoutliner.org. *
**********************************************************************
EOT