#!/usr/bin/env tclsh8.4 set root [pwd] set ::package_list [list \ archivers/unzip \ audio/abcde \ audio/audacity \ audio/csound4 \ audio/esound \ audio/gnome-audio \ audio/musicbrainz \ audio/nas \ audio/rhythmbox \ audio/sox \ audio/streamtuner \ audio/vorbis-tools \ audio/xmix \ audio/xmms \ audio/xmms-arts \ audio/xmms-esound \ audio/xmms-neato \ audio/xmms-paranormal \ audio/xmms-synaesthesia \ audio/xmp \ converters/doc2html \ devel/electricfence \ devel/lcc \ editors/leafpad \ emulators/bochs \ emulators/dosbox \ emulators/hercules \ emulators/hercules-images \ emulators/qemu \ emulators/simh \ games/criticalmass \ games/battleball \ games/bomberclone \ games/d2x \ games/finalbattle \ games/imaze \ games/netmaj \ games/netris \ games/netmaze \ games/kdegames3 \ games/scummvm \ games/xboing \ games/xbomber \ games/xmahjongg \ games/xsoldier \ games/xpilot \ graphics/gimp \ graphics/gqview \ graphics/kdegraphics3 \ graphics/qcamview \ graphics/scigraphica \ lang/cim \ lang/hugs \ lang/jdk \ lang/swi-prolog \ mail/pine \ meta-pkgs/xfce4 \ meta-pkgs/xfce4-extras \ misc/koffice \ misc/openoffice \ multimedia/kdemultimedia3 \ multimedia/libdvdcss \ multimedia/mencoder \ multimedia/mplayer \ news/slrn \ net/samba \ print/ggv \ print/gv \ print/ghostscript-gnu \ print/hpijs \ print/pnm2ppa \ print/xpdf \ sysutils/xcdroast \ sysutils/smartmontools \ textproc/aspell \ textproc/expat \ textproc/libxml2 \ textproc/raptor \ textproc/xerces-c \ www/firefox \ www/w3m \ x11/xscreensaver \ x11/xscreensaver-demo] set ::log_fd {} proc log this { puts $::log_fd $this } proc build.package update { set cmd {exec make package} if {$update} { set cmd {exec make update package} } if {[catch $cmd res] && "NONE" ne $::errorCode} { puts stderr "ERROR: $res" log "ERROR:$res" foreach {all match} [regexp -all -inline {pkg_delete[[:space:]]+([[:alnum:]\-_.]+)} $res] { puts DELETING:$match catch {exec pkg_delete -r $match} msg puts $msg } build.package $update } else { puts OK:$res log "OK:$res" } } proc install.packages update { if {$update} { set ::env(NOCLEAN) 1 } parray ::env foreach pkg $::package_list { if {"#" eq [string index $pkg 0]} continue puts "STARTING $pkg" cd $pkg build.package $update cd $::root } } proc main {argc argv} { set update 0 set ::log_fd [open mkpkgs.log a] if {$argc > 0} { puts "DOING UPDATE" set update 1 } install.packages $update } main $::argc $::argv