#!/usr/bin/env ruby
#
# mkrefe_refrd
#
# Copyright (c) 2003 Minero Aoki <aamine@loveruby.net>
#
# This program is free software.
# you can distribute/modify this program under the terms of
# the GNU Lesser General Public License version 2 or later.
#

require 'refe/database'
require 'refe/refrdparser'
require 'refe/multilangdoc'
require 'refe/mygetopt'
require 'refe/info'


getopt = MyGetoptLong.new(<<EndUsage, <<EndOptions)
Usage: #{File.basename($0)} [-d <dir>] --lang=(ja|en) <filename>

%%options%%

EndUsage

  o -d --databasedir  <dir>  Use <dir> as the database root directory.
  o -  --lang         <lang> Process <lang> document.
  o -  --version      -      Print program version and quit.
  o -h --help         -      Print this message and quit.

EndOptions


opts = {}
begin
  getopt.each do |name, arg|
    opts[name] = arg
  end
rescue => err
  getopt.usage 1, err.message
end
getopt.usage(0) if opts['--help']
if opts['--version']
  puts "mkrefe_refrd version #{ReFe::Version}"
  exit 0
end
getopt.usage(1, '--lang must be given') unless opts['--lang']


db = ReFe::Database.new(opts['--databasedir'], true)
cdoc = db.class_document
mdoc = db.method_document
parser = ReFe::ReferenceRDParser.new
classes, methods = parser.parse(MultilangDocument.new(ARGF, opts['--lang']))
classes.each do |c, doc|
  cdoc[c] = doc
end
methods.each do |c, mtbl|
  mtbl.each do |m, doc|
    mdoc["#{c}#{m}"] = doc
  end
end
cdoc.flush
mdoc.flush
