Skip to content

hipponot/kudu

Repository files navigation

Kudu

=====

Introduction

Kudu is buildware that understands transitive dependency management and is optimized for multi-gem, multi-api developer workflows. In its current state Kudu supports the development of Sinatra Web APIs and ruby gems. The build-ware is extensible, adding support for other language types is WIP.

Prerequisites

Your system must have ruby >1.93 installed.

Install VirtualBox

OSX
Download and install VirtualBox for OSX. Double click the dmg file and follow the instructions

Ubuntu
Virtual box can be installed via apt by following the instructions here

Install Vagrant

Download the Vagrant package appropriate to your system

OSX
Double click the dmg file and follow the instructions

Ubuntu

sudo dpkg -i vagrant_i686.deb

Add /opt/vagrant/bin to your path

Install vagrant-vbguest

This takes some of the pain out of VirutalBox guest additions between guest and host

vagrant gem install vagrant-vbguest

Initialize the Guest OS

cd kudu/vagrant
vagrant up

The first time this command is run the the Vagrant vbox image will be pulled down from the source URI contained in the VagrantFile (this can take some time). Upon boot up the unadorned image is is provisioned via chef-solo. The default setup is RVM, ruby and the gemset necessary to run the Kudu build system as well as some common shell & editor setup. Upon completion of the up command the newly provision VM can be accessed via the below.

vagrant ssh -- -X

You can read about other useful vagrant commands via the below.

vagrant -h

Login in and kick the tires

vagrant ssh -- -X
vagrant-> cd Kudu/example
vagrant-> kudu create-project -n kudu_example_sinatra  -t sinatra
vagrant-> cd kutu_test_sinatra
vagrant-> kudu build
vagrant-> kudu service-start

What did I just do ?

Kudu generated and built a simple sinatra based web api. The source is located in 'kudu_example_sinatra/lib/kudu_example_sinatra.rb'. Test your new api by hitting URIs below in a web browser on your host OS.

http://localhost:9393
http://localhost:9393/hello

About

Software build and transitive dependency management in ruby

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors