hub/Vagrantfile

68 строки
1.6 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Place this Vagrantfile in your src folder and run:
#
# vagrant up
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
GO_ARCHIVES = {
"linux" => "go1.4.2.linux-amd64.tar.gz",
}
INSTALL = {
"linux" => "apt-get update -qq; apt-get install -qq -y git mercurial bzr curl",
}
# location of the Vagrantfile
def src_path
ENV["GOPATH"]
end
# shell script to bootstrap Go
def bootstrap(box)
install = INSTALL[box]
archive = GO_ARCHIVES[box]
vagrant_home = "/home/vagrant"
profile = <<-PROFILE
export GOROOT=#{vagrant_home}/go
export GOPATH=#{vagrant_home}/gocode
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
PROFILE
<<-SCRIPT
#{install}
if ! [ -f /home/vagrant/#{archive} ]; then
curl -O# https://storage.googleapis.com/golang/#{archive}
fi
tar -C /home/vagrant -xzf #{archive}
chown -R vagrant:vagrant #{vagrant_home}/go
if ! grep -q GOPATH #{vagrant_home}/.bashrc; then
echo '#{profile}' >> #{vagrant_home}/.bashrc
fi
source #{vagrant_home}/.bashrc
chown -R vagrant:vagrant #{vagrant_home}/gocode
apt-get update -qq
apt-get install -qq ruby1.9.1-dev tmux zsh git
gem install bundler
echo "\nRun: vagrant ssh #{box} -c 'cd project/path; go test ./...'"
SCRIPT
end
Vagrant.configure("2") do |config|
config.vm.define "linux" do |linux|
linux.vm.box = "ubuntu/trusty64"
linux.vm.synced_folder "#{src_path}/src/github.com/github/hub", "/home/vagrant/gocode/src/github.com/github/hub"
linux.vm.provision :shell, :inline => bootstrap("linux")
end
end