#!/bin/bash # # $Id: dotvim-install.sh 15610 2012-07-31 09:37:57Z TGunkel $ # # vim install file # # Usage: # # wget -qO- get.qumido.de/vim | bash # or # curl -sL get.qumido.de/vim | bash NAME="dotvim-install" TMPDIR="/tmp/${NAME}" DLURL="https://vim.24dial.com/vim.tar" LOCALINSTALLER="${TMPDIR}/vim.tar" LOGFILE="${HOME}/.${NAME}.log" BACKUPDIR="${HOME}/.${NAME}_backup" elog () { LOGDATE=`date "+%Y-%m-%d %H:%M:%S"` LOGTYPE=`echo $1 | tr '[:lower:]' '[:upper:]'` LOGTEXT=$2 echo -e "${LOGDATE}\t${LOGTYPE}\t${LOGTEXT}" >> ${LOGFILE} || \ { echo "Error: Could not write logfile ${LOGFILE}!"; exit 1; } suffix="" [ ${LOGTYPE} == "ERROR" ] && suffix="Error: "; [ ${LOGTYPE} == "INFO" ] && suffix=" "; echo -e "${suffix}${LOGTEXT}" if [ ${LOGTYPE} == "ERROR" ]; then [ -d ${TMPDIR} ] && rm -fr ${TMPDIR} echo "Exit." exit 1 fi } if [ -f /etc/debian_version ]; then if [ `dpkg -l | awk '{print $2}' | grep -c ^vim$` -ne 1 ]; then sudo=""; [ `id -u` -eq 0 ] && sudo="sudo" ${sudo} apt-get install -y vim >/dev/null 2>&1 || elog "ERROR" "failed to install vim" fi elif [ -f /etc/redhat-release ]; then if [ `rpm -qa | awk '{print $1}' | grep -c ^vim-common` -ne 1 ]; then sudo=""; [ `id -u` -eq 0 ] && sudo="sudo" ${sudo} yum -y install vim >/dev/null 2>&1 || elog "ERROR" "failed to install vim" fi else elog "ERROR" "OS not supported!" fi mkdir -p ${TMPDIR} || elog "ERROR" "failed to create ${TMPDIR}" mkdir -p ${BACKUPDIR} || elog "ERROR" "failed to create ${BACKUPDIR}" if type curl >/dev/null 2>&1; then DOWNLOADCMD="curl -k -s -L -o ${LOCALINSTALLER} ${DLURL}" elif type wget >/dev/null 2>&1; then DOWNLOADCMD="wget -q --no-check-certificate -O ${LOCALINSTALLER} ${DLURL}" else elog "ERROR" "curl or wget required!" fi ${DOWNLOADCMD} || elog "ERROR" "failed to get ${DLURL}" BACKUPDIR=${BACKUPDIR}/`date +%s` if [ -d ${HOME}/.vim ]; then mkdir -p ${BACKUPDIR} elog "INFO" "Found ${HOME}/.vim" elog "INFO" "Moving ${HOME}/.vim to ${BACKUPDIR}/..." mv ${HOME}/.vim ${BACKUPDIR}/ || elog "ERROR" "failed to move ${HOME}/.vim" fi if [ -f ${HOME}/.vimrc ]; then mkdir -p ${BACKUPDIR} elog "INFO" "Found ${HOME}/.vimrc" elog "INFO" "Moving ${HOME}/.vimrc to ${BACKUPDIR}/..." mv ${HOME}/.vimrc ${BACKUPDIR}/ || elog "ERROR" "failed to move ${HOME}/.vimrc" fi if [ -h ${HOME}/.vimrc ]; then elog "INFO" "Found ${HOME}/.vimrc" old_link=`readlink ${HOME}/.vimrc` elog "INFO" "Removing ${HOME}/.vimrc (links to ${old_link})" rm ${HOME}/.vimrc || elog "ERROR" "failed to remove ${HOME}/.vimrc" fi tar -C ${HOME} -x -f ${LOCALINSTALLER} || elog "ERROR" "failed to extract ${LOCALINSTALLER}" ln -s ${HOME}/.vim/vimrc ${HOME}/.vimrc || elog "ERROR" "failed to create link ${HOME}/.vimrc" rm -fr ${TMPDIR} || elog "ERROR" "failed to remove ${TMPDIR}" echo -e "\nVim installed successfully!" exit 0