##
## Compiler2 - PkgLib - Rec
##
## (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
##
package require StdLib
package require FileLib
namespace eval ::PkgLib::Rec {
namespace import ::PkgLib::Db::*
}
proc ::PkgLib::Rec::Msg { Str } {
puts stdout "PKG REC MSG: $Str"
}
proc ::PkgLib::Rec::ErrorN { args } {
lappend args {please check your environment}
::StdLib::ErrorN [ list PKG REC ] $args
}
##
## --------------------------------------------------------------------------------------
##
proc ::PkgLib::Rec::Main { pKG } {
set DIR [ file join [ ::PkgLib::COMPILER_HOME ] var pkg install ]
set LPkg {}
## 1) get all packages
::FileLib::Push-SKIP {}
foreach D [ ::FileLib::GetSubDirs $DIR ] {
set Pkg [ file tail $D ]
lappend LPkg $Pkg
}
::FileLib::Pop-SKIP
## 2) filter all packages
foreach P [ FilterList [lsort $LPkg] $pKG ] {
if {[ PkgIsAvailable $P ]} continue
Msg "recover \"$P\""
::PkgLib::Db::Add $P
::PkgLib::Db::Info $P Force yes
}
}