My first Ruby CGI
2005-08-10 10:58:08
This is a little script that could be written in Perl, or shell. But I wrote it in Ruby. If you put it on a web server, in a directory with a bunch of jpg files, it zips them up and returns them. I use it to pull down a bunch of photos from my web site to whatever photo editing software I happen to be using.
#! /usr/bin/ruby require "cgi" cgi = CGI.new url = cgi.script_name relativepath = "" if url =~ %r{(.*)/photozip.cgi$} relativepath = $1 if relativepath =~ /\.\./ cgi.out() { "sorry" } end end basedir = '/someplace/on/server' localpath = basedir + relativepath d = Dir.new(localpath) hasjpeg = false; d.each do |file| if file =~ /jpg$/ hasjpeg = true break end end if hasjpeg if File.file?(localpath + "/allphotos.zip") cgi.out("status" => "302", "location" => "#{relativepath}/allphotos.zip") { "redirect" } else Dir.chdir(localpath) status = `/usr/local/java/bin/jar cf allphotos.zip *.jpg` cgi.out("status" => "302", "location" => "#{relativepath}/allphotos.zip") { "redirect" } end else cgi.out() { "sorry, no jpegs here." } end