Search This Blog

Sunday, September 25, 2016

Synchronizing vim environment accros multiple machines

Although I primarily use Sublime Text, some time ago I decided to become proficient in Vim, to improve my productivity when working gon remote machines.

Over time I've customized my vim environment. Every time I use a different machine, I need to setup the environment to my liking. While not terribly hard, the problem is that as a keep working on several remote machines and customizing my vim environment, the machines environments get out of sync. I put together this little bash script to keep things in sync across all machines I regularly work with.

#!/usr/bin/env bash
# Synchronizes this computer's vim environment to remote boxes
#
# Usage:
#
# $ ./vimsync.sh [BOXES]
#
# If BOXES is not specified, the default list will be used (see
# implementation a couple of lines below)
# BOXES is a space separated list of BOXES of the form
# [user1@]BOXNAME1 [user2@]BOXNAME2 ...

## boxes to sync to
if [[ $# -eq 0 ]]; then
  declare -a boxes=($RADGPU1 $RADGPU2 $DEVG1 $DEVG3 $DEVG4 "radshazam@$MACMINI")
else
  declare -a boxes=($@)
fi

echo $boxes

## files to synchronize
declare -a files=(".vimrc" ".vim/colors/cheerfully_dark.vim" ".gitconfig")

## directories to create
declare -a directories=("~/.vim/colors")

## sexyness
BALCK='\033[0;30m'
RED='\033[0;31m'
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
GRAY='\033[0;37m'
NC='\033[0m' # No Color


## now loop through the above arrays
for box in "${boxes[@]}"
do

  # need -e to allow backslash escapes
  echo -e "${CYAN}[Syncing to ${box}]${NC}"

  # create required directories
  for dir in "${directories[@]}"
  do
    cmd="ssh ${box} test -d ${dir} || mkdir -p ${dir}"
    echo -e "> ${GRAY}${cmd}${NC}"
    $cmd
  done

  # clone Vundle.vim if necessary
  cmd="ssh ${box} test -d ~/.vim/bundle/Vundle.vim || git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim"
  echo -e "> ${GRAY}${cmd}${NC}"
  $cmd

  # sync files
  for file in "${files[@]}"
  do
    #cmd="scp $HOME/$file ${box}:/home/jorge.herrera/$file"
    cmd="rsync -avzhe ssh $HOME/$file ${box}:~/$file"
    echo -e "> ${GRAY}${cmd}${NC}"
    $cmd
    #echo "done"
  done

  # need -e to allow backslash escapes
  echo -e "${GREEN}[Done with ${box}]${NC}"

done

The env variables $SERVER1, $SERVER2, $SERVER3 are defined elsewhere (e.g. in my ~/.bash_profile).

9 comments:

  1. This is huge thus exact here. Much obliged to you for posting them. Awesome bit of writing given that much drawing nearer into the part. These sorts of articles are truly prepared to help out for the humanity and one who are strange with these.
    essay writing service

    ReplyDelete
  2. شركة مكافحة حشرات بالاحساء

    شركة مكافحة حشرات بالاحساء شركة ذات ترخيص ولا تعمل بدون تصريح وبهذا نضمن لكم أقصى درجات الأمان عند استخدام شركتنا ، إن الأجهزة والمعدات المستخدمة من قبل شركة مكافحة حشرات بالاحساء أجهزة ذات تقنية عالية تستطيع أن تصل لجميع أرجاء المنزل وخاصة الشقوق الضيقة جدا التي تختبئ بها الحشرات .
    شركة مكافحة حشرات بالاحساء تستخدم مواد مطهرة ومعقمة تعمل على تعقيم المنزل وخاصة الأماكن التي تعد بيئة لجذب الجراثيم والبكتيريا التي تتسبب في وجود الحشرات الضارة الناقلة للأمراض ، وهذه الأماكن من أهمها الحمامات والمسابح وأماكن تجمع المياه
    لا تترددوا في الاتصال بشركتنا بعد الأن فنحن مميزون ومتخصصون في مجال مكافحة الحشرات ونضمن لكم خلو منازلكم منها في مدة قصيرة جدا دون أي إزعاج لكم أو هدر للوقت والمال .
    0552744429
    او زوروا موقعنا
    http://almthaly-dammam.com/%d8%b4%d8%b1%d9%83%d8%a9-%d9%85%d9%83%d8%a7%d9%81%d8%ad%d8%a9-%d8%ad%d8%b4%d8%b1%d8%a7%d8%aa-%d8%a8%d8%a7%d9%84%d8%a7%d8%ad%d8%b3%d8%a7%d8%a1/



    ReplyDelete
  3. فور الاتصال على الخط الساخن لتوكيل صيانة كلفينيتور يتم الرد علي استفسارتكم واستقبال الشكاوى وبلاغات الصيانة وارسال الفنيين المختصصين لاصلاح الاعطال التى تواجهكم في الاجهزة الكهربيه
    للتفاصيل زور موقعنا عبر
    http://maintenanceg.com/Kelvinator-Center-Agent.html

    ReplyDelete
  4. لا داعى للقلق على كيفيه اصلاح اى اعطال في الثلاجات مع حملات صيانة وستنجهاوس لاصلاح الثلاجات بواسطه فني متخصص
    للتفاصيل زور موقعنا عبر
    https://www.almyaa.com/White-Westinghouse-Maintenance/

    ReplyDelete
  5. لاصلاح التكييفات سارعوا بالتواصل عبر الخط الساخن لتوكيل صيانة كاريير واستدعى الفني المتخصص لاصلاح الاعطال
    للتفاصيل زور موقعنا عبر
    www.carriermaintenance.com

    ReplyDelete
  6. سارعوا الان بالتعاقد مع شركة تنظيف خزانات بالمدينة المنورة المتخصصة فى فك الخزان الى اجزاء وتنظيف كل جزء على حده لضمان التنظيف بشكل متميز
    للتفاصيل زور موقعنا عبر
    www.forsan-elkhaleg.com/19/Cleaning-tanks-company-in-Madinah

    ReplyDelete
  7. تتعدد شركات عزل فوم بالرياض والتى من ضمنهم شركة اللويمي اشهر شركة عزل فوم بالرياض والتى تعتمد على احدث الاساليب فى تركيب الفوم على الاسطح بدرجة سماكه معينه للعزل المائى والحرارى
    للتفاصيل زور موقعنا عبر
    https://www.allowaimy.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B9%D8%B2%D9%84-%D9%81%D9%88%D9%85-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/

    ReplyDelete
  8. This post is very interesting for us because its given as much information about congregational ministry keep sharing more post.
    barney | abcya

    ReplyDelete