| # -*- mode: ruby -*- | 
 | # vi: set ft=ruby : | 
 |  | 
 | Vagrant.configure("2") do |config| | 
 |   config.vm.box = "bento/ubuntu-16.04" | 
 |  | 
 |   config.vm.network "private_network", type: "dhcp" | 
 |  | 
 |   # Share an additional folder to the guest VM. The first argument is | 
 |   # the path on the host to the actual folder. The second argument is | 
 |   # the path on the guest to mount the folder. And the optional third | 
 |   # argument is a set of non-required options. | 
 |   config.vm.synced_folder "..", "/prjxray", type: "nfs" | 
 |  | 
 |   config.vm.provider "virtualbox" do |vb| | 
 |     vb.gui = true | 
 |   end | 
 |  | 
 |   # Base boxes are almost always server installs.  Install the desktop | 
 |   # components along with the C++ build tools. | 
 |   config.vm.provision "shell", inline: <<-SHELL | 
 |     apt-get update | 
 |     apt-get upgrade -y | 
 |     apt-get install -y ubuntu-desktop build-essential git cmake | 
 |   SHELL | 
 |  | 
 |   # Strangely, headless Vivado installs still require a running X server. | 
 |   # Turn on auto-login so the user's X server is active. | 
 |   config.vm.provision "shell", inline: <<-SHELL | 
 |     mkdir -p /etc/lightdm/ | 
 |     echo "[Seat:*]" > /etc/lightdm/lightdm.conf | 
 |     echo "autologin-user=vagrant" >> /etc/lightdm/lightdm.conf | 
 |     systemctl start lightdm | 
 |   SHELL | 
 |  | 
 |   # Install Vivado. | 
 |   config.vm.provision "shell", inline: <<-SHELL | 
 |     if [ ! -d /vagrant/Vivado ]; then | 
 |       echo "No Vivado download found.  Skipping install." | 
 |     else | 
 |       echo "Installing Vivado.  This takes a while.  I suggest going for a walk." | 
 |       export DISPLAY=:0 | 
 |       /vagrant/Vivado/xsetup --agree 3rdPartyEULA,WebTalkTerms,XilinxEULA --batch Install -e "Vivado HL WebPACK" --location "/opt/Xilinx" | 
 |       cp /vagrant/profile.d/* /etc/profile.d/ | 
 |     fi | 
 |   SHELL | 
 |  | 
 |   # Turn off idle screen locking and screensaver password. | 
 |   config.vm.provision "shell" do |s| | 
 |     s.privileged = false | 
 |     s.inline = <<-SHELL | 
 |       export DISPLAY=:0 | 
 |       dconf write /org/gnome/desktop/screensaver/idle-activation-enabled false | 
 |       dconf write /org/gnome/desktop/screensaver/lock-enabled false | 
 |     SHELL | 
 |   end | 
 |  | 
 |   config.vm.provision :reload | 
 | end |