-# -*- mode: ruby -*-\r
-# vi: set ft=ruby :\r
-\r
-Vagrant.configure(2) do |config|\r
- # You can only have one config.vm.box uncommented at a time\r
-\r
- # Comment this and uncomment another if you don't want to use the minimal Arch box\r
- config.vm.box = "dragon788/arch-ala-elasticdog"\r
-\r
- # VMware/Virtualbox 64 bit\r
- # config.vm.box = "phusion/ubuntu-14.04-amd64"\r
- #\r
- # VMware/Virtualbox 64 bit\r
- #config.vm.box = "puphpet/centos65-x64"\r
- #\r
- # The opensuse boxes don't have dfu-util in their default repositories\r
- #\r
- # The virtualbox version has tools issues\r
- # VMware/Virtualbox 64 bit\r
- #config.vm.box = "bento/opensuse-13.2-x86_64"\r
- #\r
- # Virtualbox only\r
- #config.vm.box = "bento/opensuse-13.2-i386"\r
- # config.vm.box = ""\r
- # config.vm.box = ""\r
-\r
- # This section allows you to customize the Virtualbox VM\r
- # settings, ie showing the GUI or upping the memory\r
- # or cores if desired\r
- config.vm.provider "virtualbox" do |vb|\r
- # Hide the VirtualBox GUI when booting the machine\r
- vb.gui = false\r
- # Uncomment the below lines if you want to program\r
- # your Teensy via the VM rather than your host OS\r
- #vb.customize ['modifyvm', :id, '--usb', 'on']\r
- #vb.customize ['usbfilter', 'add', '0',\r
- # '--target', :id,\r
- # '--name', 'teensy',\r
- # '--vendorid', '0x16c0',\r
- # '--productid','0x0478'\r
- # ] \r
- # Customize the amount of memory on the VM:\r
- vb.memory = "512"\r
- end\r
-\r
- # This section allows you to customize the VMware VM\r
- # settings, ie showing the GUI or upping the memory\r
- # or cores if desired\r
- config.vm.provider "vmware_workstation" do |vmw|\r
- # Hide the VMware GUI when booting the machine\r
- vmw.gui = false \r
- \r
- # Customize the amount of memory on the VM:\r
- vmw.memory = "512"\r
- end\r
-\r
- config.vm.provider "vmware_fusion" do |vmf|\r
- # Hide the vmfare GUI when booting the machine\r
- vmf.gui = false\r
- \r
- # Customize the amount of memory on the VM:\r
- vmf.memory = "512"\r
- end\r
- \r
- # This script ensures the required packages for AVR programming are installed\r
- # It also ensures the system always gets the latest updates when powered on\r
- # If this causes issues you can run a 'vagrant destroy' and then\r
- # add a # before ,args: and run 'vagrant up' to get a working\r
- # non-updated box and then attempt to troubleshoot or open a Github issue \r
- \r
- config.vm.provision "shell", run: "always", path: "./util/avr_setup.sh", args: "-update"\r
-\r
- config.vm.post_up_message = """\r
- Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)\r
- or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool\r
-\r
- Change directory (cd) to the keyboard you wish to program \r
- (Optionally) modify your layout, \r
- then run 'make clean' \r
- and then 'make' to compile the .eep and .hex files.\r
-\r
- Or you can copy and paste the example line below. \r
- \r
- cd /vagrant; cd keyboard; cd ergodox_ez; make clean; make\r
- \r
-\r
- """\r
-end\r
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure(2) do |config|
+ # define a name instead of just 'default'
+ config.vm.define "qmk_firmware"
+
+ # VMware/Virtualbox ( and also Hyperv/Parallels) 64 bit
+ config.vm.box = "generic/debian9"
+
+ # 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"
+ # Uncomment the below lines if you have time sync
+ # issues with make and incremental builds
+ #vb.customize [ "guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 1000 ]
+ 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:stretch"
+ 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 ,run: (or change "always" to "once") 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", inline: "/bin/sh -c 'yes | /vagrant/util/qmk_install.sh'", run: "always"
+
+ config.vm.post_up_message = <<-EOT
+
+ Log into the VM using 'vagrant ssh'. QMK directory synchronized with host is
+ located at /vagrant
+ To compile the .hex files use make command inside this directory, e.g.
+ cd /vagrant
+ make <keyboard>:default
+
+ Examples:
+ make planck/rev4:default:dfu
+ make planck:default
+
+ EOT
+end