aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Vagrantfile186
-rw-r--r--util/avr_setup.sh4
2 files changed, 101 insertions, 89 deletions
diff --git a/Vagrantfile b/Vagrantfile
index c44eaf2d6..a6c3afd38 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -1,88 +1,98 @@
1# -*- mode: ruby -*- 1# -*- mode: ruby -*-
2# vi: set ft=ruby : 2# vi: set ft=ruby :
3 3
4Vagrant.configure(2) do |config| 4Vagrant.configure(2) do |config|
5 # You can only have one config.vm.box uncommented at a time 5 # You can only have one config.vm.box uncommented at a time
6 6
7 # Comment this and uncomment another if you don't want to use the minimal Arch box 7 # Comment this and uncomment another if you don't want to use the minimal Arch box
8 config.vm.box = "dragon788/arch-ala-elasticdog" 8 config.vm.box = "dragon788/arch-ala-elasticdog"
9 9
10 # VMware/Virtualbox 64 bit 10 # VMware/Virtualbox 64 bit
11 # config.vm.box = "phusion/ubuntu-14.04-amd64" 11 # config.vm.box = "phusion/ubuntu-14.04-amd64"
12 # 12 #
13 # VMware/Virtualbox 64 bit 13 # VMware/Virtualbox 64 bit
14 #config.vm.box = "puphpet/centos65-x64" 14 #config.vm.box = "puphpet/centos65-x64"
15 # 15 #
16 # The opensuse boxes don't have dfu-util in their default repositories 16 # The opensuse boxes don't have dfu-util in their default repositories
17 # 17 #
18 # The virtualbox version has tools issues 18 # The virtualbox version has tools issues
19 # VMware/Virtualbox 64 bit 19 # VMware/Virtualbox 64 bit
20 #config.vm.box = "bento/opensuse-13.2-x86_64" 20 #config.vm.box = "bento/opensuse-13.2-x86_64"
21 # 21 #
22 # Virtualbox only 22 # Virtualbox only
23 #config.vm.box = "bento/opensuse-13.2-i386" 23 #config.vm.box = "bento/opensuse-13.2-i386"
24 # config.vm.box = "" 24 # config.vm.box = ""
25 # config.vm.box = "" 25 # config.vm.box = ""
26 26
27 # This section allows you to customize the Virtualbox VM 27 # This section allows you to customize the Virtualbox VM
28 # settings, ie showing the GUI or upping the memory 28 # settings, ie showing the GUI or upping the memory
29 # or cores if desired 29 # or cores if desired
30 config.vm.provider "virtualbox" do |vb| 30 config.vm.provider "virtualbox" do |vb|
31 # Hide the VirtualBox GUI when booting the machine 31 # Hide the VirtualBox GUI when booting the machine
32 vb.gui = false 32 vb.gui = false
33 # Uncomment the below lines if you want to program 33 # Uncomment the below lines if you want to program
34 # your Teensy via the VM rather than your host OS 34 # your Teensy via the VM rather than your host OS
35 #vb.customize ['modifyvm', :id, '--usb', 'on'] 35 #vb.customize ['modifyvm', :id, '--usb', 'on']
36 #vb.customize ['usbfilter', 'add', '0', 36 #vb.customize ['usbfilter', 'add', '0',
37 # '--target', :id, 37 # '--target', :id,
38 # '--name', 'teensy', 38 # '--name', 'teensy',
39 # '--vendorid', '0x16c0', 39 # '--vendorid', '0x16c0',
40 # '--productid','0x0478' 40 # '--productid','0x0478'
41 # ] 41 # ]
42 # Customize the amount of memory on the VM: 42 # Customize the amount of memory on the VM:
43 vb.memory = "512" 43 vb.memory = "512"
44 end 44 end
45 45
46 # This section allows you to customize the VMware VM 46 # This section allows you to customize the VMware VM
47 # settings, ie showing the GUI or upping the memory 47 # settings, ie showing the GUI or upping the memory
48 # or cores if desired 48 # or cores if desired
49 config.vm.provider "vmware_workstation" do |vmw| 49 config.vm.provider "vmware_workstation" do |vmw|
50 # Hide the VMware GUI when booting the machine 50 # Hide the VMware GUI when booting the machine
51 vmw.gui = false 51 vmw.gui = false
52 52
53 # Customize the amount of memory on the VM: 53 # Customize the amount of memory on the VM:
54 vmw.memory = "512" 54 vmw.memory = "512"
55 end 55 end
56 56
57 config.vm.provider "vmware_fusion" do |vmf| 57 config.vm.provider "vmware_fusion" do |vmf|
58 # Hide the vmfare GUI when booting the machine 58 # Hide the vmfare GUI when booting the machine
59 vmf.gui = false 59 vmf.gui = false
60 60
61 # Customize the amount of memory on the VM: 61 # Customize the amount of memory on the VM:
62 vmf.memory = "512" 62 vmf.memory = "512"
63 end 63 end
64 64
65 # This script ensures the required packages for AVR programming are installed 65 # Docker provider pulls from hub.docker.com respecting docker.image if
66 # It also ensures the system always gets the latest updates when powered on 66 # config.vm.box is nil. Note that this bind-mounts from the current dir to
67 # If this causes issues you can run a 'vagrant destroy' and then 67 # /vagrant in the guest, so unless your UID is 1000 to match vagrant in the
68 # add a # before ,args: and run 'vagrant up' to get a working 68 # image, you'll need to: chmod -R a+rw .
69 # non-updated box and then attempt to troubleshoot or open a Github issue 69 config.vm.provider "docker" do |docker, override|
70 70 override.vm.box = nil
71 config.vm.provision "shell", run: "always", path: "./util/avr_setup.sh", args: "-update" 71 docker.image = "jesselang/debian-vagrant:jessie"
72 72 docker.has_ssh = true
73 config.vm.post_up_message = """ 73 end
74 Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win) 74
75 or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool 75 # This script ensures the required packages for AVR programming are installed
76 76 # It also ensures the system always gets the latest updates when powered on
77 Change directory (cd) to the keyboard you wish to program 77 # If this causes issues you can run a 'vagrant destroy' and then
78 (Optionally) modify your layout, 78 # add a # before ,args: and run 'vagrant up' to get a working
79 then run 'make clean' 79 # non-updated box and then attempt to troubleshoot or open a Github issue
80 and then 'make' to compile the .eep and .hex files. 80
81 81 config.vm.provision "shell", run: "always", path: "./util/avr_setup.sh", args: "-update"
82 Or you can copy and paste the example line below. 82
83 83 config.vm.post_up_message = <<-EOT
84 cd /vagrant; cd keyboard; cd ergodox_ez; make clean; make 84 Log into the VM using 'vagrant ssh' on OSX or from Git Bash (Win)
85 85 or 'vagrant ssh-config' and Putty or Bitvise SSH or another SSH tool
86 86
87 """ 87 Change directory (cd) to the keyboard you wish to program
88end 88 (Optionally) modify your layout,
89 then run 'make clean'
90 and then 'make' to compile the .eep and .hex files.
91
92 Or you can copy and paste the example line below.
93
94 cd /vagrant; cd keyboard; cd ergodox_ez; make clean; make
95
96
97 EOT
98end
diff --git a/util/avr_setup.sh b/util/avr_setup.sh
index 34a8a3281..916d0378b 100644
--- a/util/avr_setup.sh
+++ b/util/avr_setup.sh
@@ -38,8 +38,9 @@ elif [[ -n "$(type -P apt-get)" ]]; then
38 gcc-avr \ 38 gcc-avr \
39 binutils-avr \ 39 binutils-avr \
40 avr-libc \ 40 avr-libc \
41 dfu-programmer \
41 dfu-util 42 dfu-util
42 43
43elif [[ -n "$(type -P yum)" ]]; then 44elif [[ -n "$(type -P yum)" ]]; then
44 # Fedora, CentOS or RHEL and derivatives 45 # Fedora, CentOS or RHEL and derivatives
45 yum -y makecache && yum -y update 46 yum -y makecache && yum -y update
@@ -55,6 +56,7 @@ elif [[ -n "$(type -P yum)" ]]; then
55 avr-binutils \ 56 avr-binutils \
56 avr-gcc \ 57 avr-gcc \
57 avr-libc \ 58 avr-libc \
59 dfu-programmer \
58 dfu-util 60 dfu-util
59 61
60elif [[ -n "$(type -P zypper)" ]]; then 62elif [[ -n "$(type -P zypper)" ]]; then