tclcompiler Code
Brought to you by:
aotto1968
#!/bin/sh #\ exec cct tclsh "$0" "$@" ## ## ----------------------------------------------------------------- ## set argi 0 proc ArgGet { { err 0 } } { global argv argi if { $argi >= [ llength $argv ]} { if { $err } { puts stderr "not enought arguments" usage } return -code break } set RET [ lindex $argv $argi ] incr argi return $RET } if {[ file exists CVS ]} { puts stderr "ERROR: found CVS" exit 1 } proc Error {Str} { global argv0 puts stderr "ERROR([ file tail $argv0 ]) $Str" exit 1 } proc Exec {args} { puts "$args" if {[ catch {eval exec $args <@stdin >@stdout 2>@stderr} FH ]} { Error $FH } } proc usage {} { global argv0 TIME puts stderr "" puts stderr "[ file tail $argv0 ]: \[ user option's \] \[glob\] ... " puts stderr "" puts stderr " user options:" puts stderr "" puts stderr " --LinCgi sync LinCgi dist" puts stderr " --CgiKey sync CgiKey package" puts stderr " --Poll sync Poll package" puts stderr "" exit 0 } set ARGS {} set PKEY {} set HKEY {} set TYP {} set TIME [ clock format [ expr {[clock seconds] + 100000} ] ] ## parse the command-line while 1 { set a [ ArgGet ] switch -exact -- $a { --LinCgi { set TYP LinCgi } --CgiKey { set TYP CgiKey } --Poll { set TYP Poll } default { if {[ string index $a 0 ] == "-"} usage lappend ARGS $a } } } ## ## --------------------------------------------------------------- ## proc LinCgi {} { set LOGIN www1011 set HOST www1011@tclcompiler.sourceforge.net ## 1. make DL if 0 { puts "delete LinCgi.tar.gz" catch { file delete -force /tmp/LinCgi.tar.gz } ERR puts "make LinCgi.tar.gz" Exec tar --directory /home/dev1usr/html/comp-fact/var/Dist -czvf /tmp/LinCgi.tar.gz LinCgi.CVS puts "cp LinCgi.tar.gz" Exec scp /tmp/LinCgi.tar.gz $LOGIN@$HOST:bin } puts "install LinCgi.tar.gz" Exec ssh -l $LOGIN $HOST "cd bin;tar -xzvf LinCgi.tar.gz;cd LinCgi.CVS;./install.sh;rm ../LinCgi.tar.gz" } proc _update { N D } { set LOGIN www1011 set HOST www1011@tclcompiler.sourceforge.net set NAME $N.tar.gz set TMP /tmp/$NAME ## 1. make DL if 1 { puts "delete $TMP" catch { file delete -force $TMP } ERR puts "make $TMP" Exec tar --directory $D/$N.CVS --dereference -czvf $TMP $N.tpkg puts "cp $TMP" Exec scp $TMP $LOGIN@$HOST:bin } puts "install $NAME" Exec ssh -l $LOGIN $HOST "cd bin;tar -xzvf $NAME;LinCgi.CVS/cct -t $N pkg --upd; rm -fr $NAME $N.tpkg" } proc CgiKey {} { _update CgiKey /home/dev1usr/Project/Compiler3/example } proc Poll {} { _update Poll /home/dev1usr/Project/Compiler3/example } ## ## --------------------------------------------------------------- ## if {$TYP == {}} { Error {please provide a type [--LinCgi|--CgiKey|--Poll]} } #if {[ llength $ARGS ] != 1} { Error {need *only* one arg} } $TYP