Sebastian Sebastian - 6 months ago 33
Ruby Question

serve current directory from command line

could someone give me a hint, howto serve the current directory from command line with ruby? it would be great, if i can have some system wide configuration (e.g. mime-types) and simply launch it from every directory.


Simplest way possible (thanks Aaron Patterson):

ruby -run -e httpd . -p 9090

Alternate, more complex way:

ruby -r webrick -e "s = => 9090, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start"

Even the first command is hard to remember, so I just have this in my .bashrc:

function serve {
  ruby -run -e httpd . -p $port

It serves the current directory on port 3000 by default, but you can also specify the port:

~ $ cd tmp
~/tmp $ serve      # ~/tmp served on port 3000
~/tmp $ cd ../www
~/www $ serve 5000   # ~/www served on port 5000