Skip to content

Instantly share code, notes, and snippets.

@santosh79
Last active August 29, 2015 13:56
Show Gist options
  • Save santosh79/9245934 to your computer and use it in GitHub Desktop.
Save santosh79/9245934 to your computer and use it in GitHub Desktop.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--memory", 384]
end
# config.vm.network :bridged
config.vm.synced_folder "../", "/home/vagrant/codez"
$required_packages = %W{git g++ make}
$forwarded_ports = [8080]
setup_forwarded_ports config, $forwarded_ports
install_default_packages config, $required_packages
$global_custom_install_scripts = setup_global_custom_install_scripts
install_custom_packages config, $global_custom_install_scripts
clone_dot_files
end
def setup_forwarded_ports(config, forwarded_ports)
forwarded_ports.each do |forward_port|
config.vm.network :forwarded_port, host: forward_port, guest: forward_port
end
end
def install_default_packages(config, packages_to_install)
packages_to_install.each do |pkg|
script = <<SCRIPT
cd
sudo apt-get -y install #{pkg}
SCRIPT
config.vm.provision :shell, :inline => script
end
end
def install_custom_packages(config, custom_package_install_scripts)
custom_package_install_scripts.each do |install_script|
config.vm.provision :shell, :inline => install_script
end
end
def setup_global_custom_install_scripts
node_install_script = <<SCRIPT
cd
if [ `node -v` != "v0.10.25" ]; then
wget http://nodejs.org/dist/v0.10.25/node-v0.10.25.tar.gz
tar -xzf node-v0.10.25.tar.gz
rm node-v0.10.25.tar.gz
cd node-v0.10.25/
./configure
make
sudo make install
cd ..
rm -rf node-v0.10.25
fi
SCRIPT
[node_install_script]
end
def clone_dot_files
dot_files_script = <<SCRIPT
cd /home/vagrant
git clone https://github.com/santosh79/dot-files.git
echo ". /home/vagrant/dot-files/dot-profiles" >> /home/vagrant/.bashrc
ln -s /home/vagrant/dot-files/dot-vimrc /home/vagrant/.vimrc
ln -s /home/vagrant/dot-files/dot-vim /home/vagrant/.vim
ln -s /home/vagrant/dot-files/dot-gitconfig /home/vagrant/dot-files/.gitconfig
SCRIPT
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment