aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hilburn <bhilburn@gmail.com>2017-03-08 22:31:47 +0300
committerGitHub <noreply@github.com>2017-03-08 22:31:47 +0300
commit94293b0f9417acb1648dbc9e659a8f21452a508d (patch)
treeefdcf0d4bb3251a5caae3da9eeb9ac24ac192d16
parent2f387376aaad69953a8d13324de794bc87772642 (diff)
parentbdb16a81c156bd409f76e979c35621dba7471837 (diff)
Merge pull request #424 from dritter/add_freebsd_vm
Add FreeBSD VM
-rw-r--r--TESTS.md8
-rw-r--r--test-bsd-vm/Vagrantfile87
-rw-r--r--test-bsd-vm/bootstrap-zero.sh3
-rw-r--r--test-bsd-vm/bootstrap.sh8
-rw-r--r--test-vm-providers/plain.sh4
-rw-r--r--test-vm/Vagrantfile2
-rw-r--r--test-vm/plain.sh3
7 files changed, 111 insertions, 4 deletions
diff --git a/TESTS.md b/TESTS.md
index d4e663dc..d51051c5 100644
--- a/TESTS.md
+++ b/TESTS.md
@@ -12,3 +12,11 @@ Tests in separate files under `test/functions`.
These Tests tend to be more complex in setup than the basic tests. To avoid ending
up in a huge single file, there is one file per segment in `test/segments`.
+
+# Test-VMs
+
+If unit tests are not sufficient (e.g. you have an issue with your prompt that
+occurs only in a specific ZSH framework), then you could use our Test-VMs!
+Currently there are two test VMs. `test-vm` is an Ubuntu machine with several
+pre-installed ZSH frameworks. And there is `test-bsd-vm` which is a FreeBSD!
+For how to run the machines see [here](test-vm/README.md). \ No newline at end of file
diff --git a/test-bsd-vm/Vagrantfile b/test-bsd-vm/Vagrantfile
new file mode 100644
index 00000000..7df512a3
--- /dev/null
+++ b/test-bsd-vm/Vagrantfile
@@ -0,0 +1,87 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+# All Vagrant configuration is done below. The "2" in Vagrant.configure
+# configures the configuration version (we support older styles for
+# backwards compatibility). Please don't change it unless you know what
+# you're doing.
+Vagrant.configure("2") do |config|
+ # The most common configuration options are documented and commented below.
+ # For a complete reference, please see the online documentation at
+ # https://docs.vagrantup.com.
+
+ # Every Vagrant development environment requires a box. You can search for
+ # boxes at https://atlas.hashicorp.com/search.
+ config.vm.box = "freebsd/FreeBSD-11.0-STABLE"
+
+ # Bootstrap
+ config.vm.provision :shell, path: "bootstrap-zero.sh", privileged: true
+ config.vm.provision :shell, path: "bootstrap.sh", privileged: false
+ config.vm.provision :shell, path: "../test-vm-providers/plain.sh", privileged: false
+
+ # Disable automatic box update checking. If you disable this, then
+ # boxes will only be checked for updates when the user runs
+ # `vagrant box outdated`. This is not recommended.
+ # config.vm.box_check_update = false
+
+ # Create a forwarded port mapping which allows access to a specific port
+ # within the machine from a port on the host machine. In the example below,
+ # accessing "localhost:8080" will access port 80 on the guest machine.
+ # config.vm.network "forwarded_port", guest: 80, host: 8080
+
+ # Create a private network, which allows host-only access to the machine
+ # using a specific IP.
+ config.vm.network "private_network", ip: "192.168.33.10"
+
+ # Create a public network, which generally matched to bridged network.
+ # Bridged networks make the machine appear as another physical device on
+ # your network.
+ #config.vm.network "public_network"
+
+ # The BSD base box does not define a MAC address. Whysoever.
+ config.vm.base_mac = "8AAB4975994A"
+
+ # There is no BASH for root on BSD. We need to set another shell.
+ # See https://www.freebsd.org/doc/en/articles/linux-users/shells.html
+ config.ssh.shell = "/bin/sh"
+
+ # 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 "..", "/vagrant_data", type: "nfs"
+ config.vm.synced_folder ".", "/vagrant", type: "nfs"
+
+ # Provider-specific configuration so you can fine-tune various
+ # backing providers for Vagrant. These expose provider-specific options.
+ # Example for VirtualBox:
+ config.vm.provider "virtualbox" do |vb|
+
+ # Change name to "powerlevel9k-bsd"
+ vb.name = "powerlevel9k-bsd"
+
+ # Display the VirtualBox GUI when booting the machine
+ #vb.gui = true
+
+ # Customize the amount of memory on the VM:
+ vb.memory = "256"
+ end
+
+ # View the documentation for the provider you are using for more
+ # information on available options.
+
+ # Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
+ # such as FTP and Heroku are also available. See the documentation at
+ # https://docs.vagrantup.com/v2/push/atlas.html for more information.
+ # config.push.define "atlas" do |push|
+ # push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
+ # end
+
+ # Enable provisioning with a shell script. Additional provisioners such as
+ # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
+ # documentation for more information about their specific syntax and use.
+ # config.vm.provision "shell", inline: <<-SHELL
+ # apt-get update
+ # apt-get install -y apache2
+ # SHELL
+end
diff --git a/test-bsd-vm/bootstrap-zero.sh b/test-bsd-vm/bootstrap-zero.sh
new file mode 100644
index 00000000..35dcd7f3
--- /dev/null
+++ b/test-bsd-vm/bootstrap-zero.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pkg install -y sudo \ No newline at end of file
diff --git a/test-bsd-vm/bootstrap.sh b/test-bsd-vm/bootstrap.sh
new file mode 100644
index 00000000..f78b3078
--- /dev/null
+++ b/test-bsd-vm/bootstrap.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+# Install ZSH
+sudo pkg install -y zsh
+sudo chsh -s `which zsh` vagrant
+
+# Install git
+sudo pkg install -y git \ No newline at end of file
diff --git a/test-vm-providers/plain.sh b/test-vm-providers/plain.sh
new file mode 100644
index 00000000..a87220f8
--- /dev/null
+++ b/test-vm-providers/plain.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/zsh
+
+echo 'LANG=en_US.UTF-8' !> ~/.zshrc
+echo 'source /vagrant_data/powerlevel9k.zsh-theme' >> ~/.zshrc \ No newline at end of file
diff --git a/test-vm/Vagrantfile b/test-vm/Vagrantfile
index ee53fcdf..a421c706 100644
--- a/test-vm/Vagrantfile
+++ b/test-vm/Vagrantfile
@@ -16,7 +16,7 @@ Vagrant.configure(2) do |config|
# Bootstrap
config.vm.provision :shell, path: "bootstrap.sh", privileged: false
- config.vm.provision :shell, path: "plain.sh", privileged: false
+ config.vm.provision :shell, path: "../test-vm-providers/plain.sh", privileged: false
config.vm.provision :shell, path: "antigen.sh"
config.vm.provision :shell, path: "prezto.sh"
config.vm.provision :shell, path: "omz.sh"
diff --git a/test-vm/plain.sh b/test-vm/plain.sh
deleted file mode 100644
index 9c8445f4..00000000
--- a/test-vm/plain.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/zsh
-
-echo 'source /vagrant_data/powerlevel9k.zsh-theme' > ~/.zshrc