#!/usr/local/bin/ruby

DB          = "DBI:SQLite:data/data.sqlite"
ENABLE_FCGI = false
MASTER      = false
MASTER_MODE = ["initialize"]

require "cgi"
require "erb"
require "dbi"
require "fcgi"
require "digest/sha1"

$db = DBI.connect(DB)
$db['AutoCommit'] = true

class MyCGI
  def initialize(cgi)
    @cgi = cgi
    @cmd = cgi.params['cmd'].first

    if(!@cmd)
      @cmd = "top"
    end
    if !MASTER
      @cmd = "top" if MASTER_MODE.include? @cmd
    end

    __send__("cmd_#{@cmd}")
    @cgi.out{ERB.new(DATA.read).result(binding)}
  end

  def cmd_top
  end

  def cmd_src
    DATA.rewind
    @cgi.out({"type"=>"text/plain"}){ DATA.read }
    exit
  end

  def cmd_initialize
    $db.do <<-EOL
    EOL
  end
end

if ENABLE_FCGI
  FCGI.each_cgi do |cgi|
    MyCGI.new(cgi)
  end
else
  MyCGI.new(CGI.new)
end

__END__
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
 <title></title>
 <div class="footer">
   <a href="?cmd=src"> Source code </a>
 </div>
</html>