##
## Cct - ::CctIndex
##
## (C) IPN - Ingenieurbuero fuer Praezisionsnumerik
##
## Dipl.-Ing. Andreas Otto
## Ulmenstrasse 3
## D-34289 Zierenberg
## mailto:aotto@t-online.de
## http://tclcompiler.sourceforge.net
##
## Alle Rechte vorbehalten
##
namespace eval ::CctIndex {}
proc ::CctIndex::Cfg {} {
return [ list 0 {create all kinds of indexes} ]
}
if {[ info exists COMPILER_CCT_CFG ]} return
PkgProvide CctIndex
package require Cct
proc ::CctIndex::ErrorN { args } {
::StdLib::ErrorN {INDEX ERROR} $args
}
##
## -------------------------------------------------------
## Index
##
namespace eval ::CctIndex::Args {
variable ARGS_DEFAULT {-p 0 -t 0 -c 0 -i 0 --sys {NOT SET} --cmp 0 --dir .}
variable VALUE
variable ARGS
array set ARGS {
--dir {SetArg CctIndex --dir}
--cmp {SetFlag CctIndex --cmp}
--sys {SetArg CctIndex --sys}
-p {SetFlag CctIndex -p}
-t {SetFlag CctIndex -t}
-c {SetFlag CctIndex -c}
-i {SetFlag CctIndex -i}
-h ::CctIndex::Args::Help
--help ::CctIndex::Args::Help
}
namespace import ::Args::*
}
proc ::CctIndex::Args::Help {} {
variable VALUE
EnvRead CctIndex
::StdLib::StdErr "\nusage: cct index \[user-option ...\] \[--\] args"
::StdLib::StdErr ""
::StdLib::StdErr " user-options :\n"
Print-Flag CctIndex -p "create \"pkgIndex.tcl\""
Print-Flag CctIndex -t "create \"tclIndex\" and \"tags\""
Print-Flag CctIndex -c "create \"cct.cfg\" file"
Print-Flag CctIndex -i "create \"cgi.cfg\" file"
Print-Opt CctIndex --sys BOOL "create/delete \"SysIndex\" file"
Print-Opt CctIndex --dir DIR "directory to create index"
Print-Flag CctIndex --cmp "use COMPILER_ARCH/lib/pkg"
Print-Opt CctIndex --args LIST "index arguments"
Print-Cmd %MASTER% Default
::StdLib::StdErr ""
exit 1
}
proc ::CctIndex::Args::Main {} {
set FLAG 1
while {1} {
set Val [ GetArg ]
if {[ string equal $Val %%NO%% ]} break
if {[ string equal $Val -- ]} { set FLAG 0 ; continue }
if {$FLAG && [ IsOpt CctIndex $Val ]} {
Test-Opt CctIndex $Val
Invoke CctIndex $Val
} else {
AppendVal CctIndex --args $Val
}
}
EnvRead CctIndex
}
##
## -------------------------------------------------------
##
proc ::CctIndex::Main {} {
upvar 0 Args::VALUE VALUE
package require IIndex
if {$VALUE(-p)} {
if {[ info exists VALUE(--args) ]} {
set ARGS $VALUE(--args)
} else {
set ARGS [ list *[info sharedlibextension] *.tcl ]
}
if { $VALUE(--cmp) } {
::IIndex::Pkg [ ::Env::Arch lib pkg ] $ARGS
} else {
::IIndex::Pkg $VALUE(--dir) $ARGS
}
}
if {$VALUE(-t)} {
if {[ info exists VALUE(--args) ]} {
set ARGS $VALUE(--args)
} else {
set ARGS *.tcl
}
::IIndex::Tcl $VALUE(--dir) $ARGS
}
if {$VALUE(-c)} {
if { $VALUE(--cmp) } {
::IIndex::Cct [ ::Env::Arch lib pkg ]
} else {
::IIndex::Cct $VALUE(--dir)
}
}
if {$VALUE(-i)} {
if { $VALUE(--cmp) } {
::IIndex::Cgi [ ::Env::Arch lib pkg ]
} else {
::IIndex::Cgi $VALUE(--dir)
}
}
if {$VALUE(--sys) != {NOT SET}} {
::IIndex::Sys [ string is true $VALUE(--sys) ]
}
}