~ruther/qmk_firmware

fd454e5b74bc0a87effd755986ce33bf05b4d27c — Aron Griffis 9 years ago 6b8b332
Add support for vagrant-docker (#389)

* clean trailing ws in Vagrantfile and util/avr_setup.sh

* replace triple quotes with heredoc.

Ruby doesn't have triple quotes; that's a Python thing. This was just being
parsed as multiple strings concatenated.

* add docker support to Vagrantfile

* make wants to find dfu-programmer in vagrant guest
2 files changed, 101 insertions(+), 89 deletions(-)

M Vagrantfile
M util/avr_setup.sh
M Vagrantfile => Vagrantfile +98 -88
@@ 1,88 1,98 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  # You can only have one config.vm.box uncommented at a time

  # Comment this and uncomment another if you don't want to use the minimal Arch box
  config.vm.box = "dragon788/arch-ala-elasticdog"

  # VMware/Virtualbox 64 bit
  # config.vm.box = "phusion/ubuntu-14.04-amd64"
  #
  # VMware/Virtualbox 64 bit
  #config.vm.box = "puphpet/centos65-x64"
  #
  # The opensuse boxes don't have dfu-util in their default repositories
  #
  # The virtualbox version has tools issues
  # VMware/Virtualbox 64 bit
  #config.vm.box = "bento/opensuse-13.2-x86_64"
  #
  # Virtualbox only
  #config.vm.box = "bento/opensuse-13.2-i386"
  # config.vm.box = ""
  # config.vm.box = ""

  # This section allows you to customize the Virtualbox VM
  # settings, ie showing the GUI or upping the memory
  # or cores if desired
  config.vm.provider "virtualbox" do |vb|
    # Hide the VirtualBox GUI when booting the machine
    vb.gui = false
    # Uncomment the below lines if you want to program
    # your Teensy via the VM rather than your host OS
    #vb.customize ['modifyvm', :id, '--usb', 'on']
    #vb.customize ['usbfilter', 'add', '0',
    #    	  '--target', :id,
    #    	  '--name', 'teensy',
    #    	  '--vendorid', '0x16c0',
    #    	  '--productid','0x0478'
    #		 ] 
    # Customize the amount of memory on the VM:
    vb.memory = "512"
  end

  # This section allows you to customize the VMware VM
  # settings, ie showing the GUI or upping the memory
  # or cores if desired
  config.vm.provider "vmware_workstation" do |vmw|
    # Hide the VMware GUI when booting the machine
    vmw.gui = false 
 
    # Customize the amount of memory on the VM:
    vmw.memory = "512"
  end

  config.vm.provider "vmware_fusion" do |vmf|
    # Hide the vmfare GUI when booting the machine
    vmf.gui = false
 
    # Customize the amount of memory on the VM:
    vmf.memory = "512"
  end
  
  # This script ensures the required packages for AVR programming are installed
  # It also ensures the system always gets the latest updates when powered on
  # If this causes issues you can run a 'vagrant destroy' and then
  # add a # before ,args: and run 'vagrant up' to get a working
  # non-updated box and then attempt to troubleshoot or open a Github issue 
  
  config.vm.provision "shell", run: "always", path: "./util/avr_setup.sh", args: "-update"

  config.vm.post_up_message = """
  Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
  or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool

  Change directory (cd) to the keyboard you wish to program 
  (Optionally) modify your layout, 
  then run 'make clean' 
  and then 'make' to compile the .eep and .hex files.

  Or you can copy and paste the example line below. 
 
  cd /vagrant; cd keyboard; cd ergodox_ez; make clean; make
  

  """
end
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  # You can only have one config.vm.box uncommented at a time

  # Comment this and uncomment another if you don't want to use the minimal Arch box
  config.vm.box = "dragon788/arch-ala-elasticdog"

  # VMware/Virtualbox 64 bit
  # config.vm.box = "phusion/ubuntu-14.04-amd64"
  #
  # VMware/Virtualbox 64 bit
  #config.vm.box = "puphpet/centos65-x64"
  #
  # The opensuse boxes don't have dfu-util in their default repositories
  #
  # The virtualbox version has tools issues
  # VMware/Virtualbox 64 bit
  #config.vm.box = "bento/opensuse-13.2-x86_64"
  #
  # Virtualbox only
  #config.vm.box = "bento/opensuse-13.2-i386"
  # config.vm.box = ""
  # config.vm.box = ""

  # This section allows you to customize the Virtualbox VM
  # settings, ie showing the GUI or upping the memory
  # or cores if desired
  config.vm.provider "virtualbox" do |vb|
    # Hide the VirtualBox GUI when booting the machine
    vb.gui = false
    # Uncomment the below lines if you want to program
    # your Teensy via the VM rather than your host OS
    #vb.customize ['modifyvm', :id, '--usb', 'on']
    #vb.customize ['usbfilter', 'add', '0',
    #    	  '--target', :id,
    #    	  '--name', 'teensy',
    #    	  '--vendorid', '0x16c0',
    #    	  '--productid','0x0478'
    #		 ]
    # Customize the amount of memory on the VM:
    vb.memory = "512"
  end

  # This section allows you to customize the VMware VM
  # settings, ie showing the GUI or upping the memory
  # or cores if desired
  config.vm.provider "vmware_workstation" do |vmw|
    # Hide the VMware GUI when booting the machine
    vmw.gui = false

    # Customize the amount of memory on the VM:
    vmw.memory = "512"
  end

  config.vm.provider "vmware_fusion" do |vmf|
    # Hide the vmfare GUI when booting the machine
    vmf.gui = false

    # Customize the amount of memory on the VM:
    vmf.memory = "512"
  end

  # Docker provider pulls from hub.docker.com respecting docker.image if
  # config.vm.box is nil. Note that this bind-mounts from the current dir to
  # /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
  # image, you'll need to: chmod -R a+rw .
  config.vm.provider "docker" do |docker, override|
    override.vm.box = nil
    docker.image = "jesselang/debian-vagrant:jessie"
    docker.has_ssh = true
  end

  # This script ensures the required packages for AVR programming are installed
  # It also ensures the system always gets the latest updates when powered on
  # If this causes issues you can run a 'vagrant destroy' and then
  # add a # before ,args: and run 'vagrant up' to get a working
  # non-updated box and then attempt to troubleshoot or open a Github issue

  config.vm.provision "shell", run: "always", path: "./util/avr_setup.sh", args: "-update"

  config.vm.post_up_message = <<-EOT
  Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
  or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool

  Change directory (cd) to the keyboard you wish to program
  (Optionally) modify your layout,
  then run 'make clean'
  and then 'make' to compile the .eep and .hex files.

  Or you can copy and paste the example line below.

  cd /vagrant; cd keyboard; cd ergodox_ez; make clean; make


  EOT
end

M util/avr_setup.sh => util/avr_setup.sh +3 -1
@@ 38,8 38,9 @@ elif [[ -n "$(type -P apt-get)" ]]; then
    gcc-avr \
    binutils-avr \
    avr-libc \
    dfu-programmer \
    dfu-util
  

elif [[ -n "$(type -P yum)" ]]; then
  # Fedora, CentOS or RHEL and derivatives
  yum -y makecache && yum -y update


@@ 55,6 56,7 @@ elif [[ -n "$(type -P yum)" ]]; then
    avr-binutils \
    avr-gcc \
    avr-libc \
    dfu-programmer \
    dfu-util

elif [[ -n "$(type -P zypper)" ]]; then