#!/usr/local/bin/tclsh
# -*- tcl -*-
# extract documentation from tcl sources, convert into html.
# 7.6 used, due to crashes of 8.0a1/2, 8.0b1 works again

# save this from redefinition by 'cgilib'.
# See distribution.cls, line 39ff too.
catch {parray}

package require Pool_Base
package require AutoDOC


# define options and read them (hardwired defaults, user defaults, commandline)

::pool::array::def        oDef
::pool::getopt::defOption oDef srcdir     -d [pwd]
::pool::getopt::defOption oDef outputdir  -d [file join [pwd] html]
::pool::getopt::defOption oDef replyaddr  -d [::pool::misc::currentAddress]
::pool::getopt::defOption oDef tables     -d 1 -t ::pool::getopt::boolean
::pool::getopt::defOption oDef psort      -d 1 -t ::pool::getopt::boolean
::pool::getopt::defOption oDef ptable     -d 1 -t ::pool::getopt::boolean
::pool::getopt::defOption oDef v          -d 0 -t ::pool::getopt::boolean
::pool::getopt::defOption oDef up-title   -d ""
::pool::getopt::defOption oDef up-link    -d ""
::pool::getopt::defOption oDef up-image   -d ""
::pool::getopt::defOption oDef up-imglink -d 0 -t ::pool::getopt::boolean

foreach opt {
    replyaddr tables psort ptable up-title up-link up-image up-imglink
} {
    proc $opt {v} "global oDef; ::pool::getopt::changeDefault oDef $opt \$v"
}

# user dependent configuration
catch {source [file join $env(HOME) .autodocrc]}

# caller configuration
::pool::array::def                    opt
::pool::getopt::initValues oDef       opt
::pool::getopt::processOpt oDef $argv opt

if {$opt(-v)} {
    puts stdout "\t-srcdir     = $opt(-srcdir)"
    puts stdout "\t-outputdir  = $opt(-outputdir)"
    puts stdout "\t-replyaddr  = $opt(-replyaddr)"
    puts stdout "\t-tables     = $opt(-tables)"
    puts stdout "\t-psort      = $opt(-psort)"
    puts stdout "\t-ptable     = $opt(-ptable)"
    puts stdout "\t-up-title   = $opt(-up-title)"
    puts stdout "\t-up-image   = $opt(-up-image)"
    puts stdout "\t-up-link    = $opt(-up-link)"
    puts stdout "\t-up-imglink = $opt(-up-imglink)"
    puts stdout ""
}


proc log_do {level message} {
    puts stdout "$level\t$message"
    return
}

::pool::syslog::def log_do


# -- do it
distribution dist                     \
	-srcdir     $opt(-srcdir)     \
	-outputdir  $opt(-outputdir)  \
	-replyaddr  $opt(-replyaddr)  \
	-tables     $opt(-tables)     \
	-psort      $opt(-psort)      \
	-ptable     $opt(-ptable)     \
	-up-title   $opt(-up-title)   \
	-up-image   $opt(-up-image)   \
	-up-link    $opt(-up-link)    \
	-up-imglink $opt(-up-imglink) \
	-adlocation {http://www.oche.de/~akupries/soft/autodoc/index.htm}

dist configure -formatter [htmlFormatter distHtmlOut]
dist scan
dist delete

exit 0
