From a3fb3b5bc81613ada6bdec66e828435ed4f8e4d8 Mon Sep 17 00:00:00 2001 From: Jeroen De Dauw Date: Tue, 7 Feb 2017 19:19:25 +0100 Subject: [PATCH] Added Vagrant support (#123) This makes installation easier, esp for those that do not know the toolchain. --- .gitignore | 3 +++ README.md | 33 ++++++++++++++++++++++++--------- Vagrantfile | 31 +++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 9 deletions(-) create mode 100644 Vagrantfile diff --git a/.gitignore b/.gitignore index 733fa44..7e3e74b 100644 --- a/.gitignore +++ b/.gitignore @@ -201,3 +201,6 @@ local.properties # sftp configuration file sftp-config.json +# Vagrant +.vagrant/ +ubuntu-xenial-16.04-cloudimg-console.log \ No newline at end of file diff --git a/README.md b/README.md index 3d0f37c..c677ff9 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ experience assumed or required. Just follow the instructions below to start making tests pass! -### Getting Started +## Getting Started The easiest and fastest way to get the koans up and running is to [download the latest zip file from Github](https://github.com/functional-koans/clojure-koans/releases). @@ -20,6 +20,23 @@ your own branch - that way if you pull back the latest koans from master, it'll be a bit easier to manage the inevitable conflicts if we make changes to exercises you've already completed. +You can install the dependencies for the koans (such as Clojure) on your machine, +or you can use Vagrant and the configuration in this repository to have everything +you need set up in a virtual machine. + +### Installation with Vagrant + +Make sure you have [Vagrant](https://www.vagrantup.com/) and +[VirtualBox](https://www.virtualbox.org) installed. +In the root directory of the project, execute: + + vagrant up + vagrant ssh + cd /vagrant + lein koan run + +### Installation on Your Machine + The only things you'll need to run the Clojure Koans are: - JRE 1.6 or higher @@ -30,8 +47,6 @@ automatically install the Clojure jar in the right place. Leiningen will also get you a couple more jarfiles, including JLine, which allows you some of the functionality of readline (command-line history, for example). -### Installing dependencies - Dependencies are installed automatically with lein 2, but if for some reason you're on lein 1 and can't upgrade, you'll need to run @@ -41,7 +56,7 @@ which will download all dependencies you need to run the Clojure koans. I strongly recommend that you upgrade to lein 2 instead! -### Running the Koans +## Running the Koans If you're running from the zipfile, simply run @@ -83,7 +98,7 @@ things pass, you should work thoughtfully, making sure you understand why the answer is what it is. Enjoy your path to Clojure enlightenment! -### Trying more things out +## Trying more things out There's a REPL (Read-Evaluate-Print Loop) included in the Clojure Koans. Just run: @@ -114,7 +129,7 @@ will show you what those commands mean. You can exit the REPL with `CTRL-d` on any OS. -### Contributing +## Contributing Patches are encouraged! Make sure the answer sheet still passes (`lein koan test`), and send a pull request. @@ -132,12 +147,12 @@ Feel free to contact me (Colin Jones / trptcolin) on Github or elsewhere if you have any questions or want more direction before you start pitching in. -### Contributors +## Contributors https://github.com/functional-koans/clojure-koans/contributors -### Credits +## Credits These exercises were started by [Aaron Bedra](http://github.com/abedra) of [Relevance, Inc.](http://github.com/relevance) in early 2010, as a learning @@ -150,7 +165,7 @@ learning a programming language started with the [Ruby Koans](http://rubykoans.com) by [EdgeCase](http://github.com/edgecase). -### License +## License The use and distribution terms for this software are covered by the Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..f846099 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,31 @@ +Vagrant.configure("2") do |config| + config.vm.box = "ubuntu/xenial64" + + config.vm.network "private_network", ip: "192.168.33.33" + + config.vm.provider "virtualbox" do |vb| + vb.memory = "1024" + end + + config.vm.provision "shell", inline: <<-SHELL + set -x + + #apt-get update + #apt-get upgrade -y + apt-get install -y openjdk-8-jdk + SHELL + + config.vm.provision "shell", privileged: false, inline: <<-SHELL + pwd + mkdir bin + echo "PATH=\$PATH:~/bin" >> .bashrc + + cd bin + wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein + chmod +x lein + ./lein + + cd /vagrant + ~/bin/lein deps + SHELL +end