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=$homedir/.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/syntax
make_dir $vimdir/ftplugin
make_dir $vimdir/ftdetect
make_dir $vimdir/doc
make_dir $vimdir/colors
make_dir $vodir
make_dir $vodir/plugins
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 add-ons/plugins $vodir/plugins
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
|