| #!/bin/sh |
| #============================================================ |
| # create a source tar ball from the tcl/websh project |
| # $Id$ |
| #============================================================ |
| # \ |
| exec tclsh "$0" "$@" |
| |
| set repository "http://svn.apache.org/repos/asf/tcl/websh" |
| |
| proc usage {} { |
| global argv0 |
| fatal "usage: $argv0 <build>\n where <build> is the name of a tagged build (e.g. 3.5.0)\n or trunk for the latest repository version\n or builds for a list of available tagged builds" |
| } |
| |
| proc fatal {msg} { |
| puts stderr $msg |
| exit 1 |
| } |
| |
| if {$argc != 1} { |
| usage |
| } |
| |
| # get build from command line |
| set build [lindex $argv 0] |
| if {"$build" == "trunk"} { |
| set trunk 1 |
| append build "-[clock format [clock seconds] -format "%Y%m%d"]" |
| } elseif {"$build" == "builds"} { |
| set builds "" |
| regsub -all "/" [exec svn list $repository/tags] "" builds |
| puts $builds |
| puts "trunk" |
| exit |
| } else { |
| set trunk 0 |
| } |
| |
| if {!$trunk} { |
| # check whether build is valid |
| puts "checking for build $build" |
| |
| if {[catch { |
| set svnlist [exec svn list $repository/tags] |
| if {![regexp "$build/" $svnlist]} { |
| fatal "build $build is not tagged" |
| } |
| } msg]} {fatal $msg} |
| } |
| |
| # checkout build in a temporary directory |
| set tmpdir [pid].tmp |
| file mkdir $tmpdir |
| cd $tmpdir |
| |
| if {$trunk} { |
| puts "checking out trunk in temporary directory" |
| catch {exec svn co $repository/trunk websh-$build} |
| } else { |
| puts "checking out build $build in temporary directory" |
| catch {exec svn co $repository/tags/$build websh-$build} |
| } |
| |
| if {![file exists websh-$build/README]} { |
| cd .. |
| fatal "checkout in directory $tmpdir failed" |
| } |
| |
| cd websh-$build |
| ## ------------------------------------------------------------- |
| ## do some cleanup in the build (just add more fixes or stuff |
| |
| # remove the examples |
| file delete -force examples |
| |
| # make the docs (quickref in html format) |
| cd doc |
| file mkdir html |
| catch {exec make} |
| cd .. |
| |
| ## end of cleanup |
| ## ------------------------------------------------------------- |
| |
| # creating tar ball for quickref |
| puts "creating tar ball quickref-$build.tar.gz" |
| cd doc |
| file rename html quickref-$build |
| exec tar czf ../../../quickref-$build.tar.gz --exclude .svn quickref-$build |
| file rename quickref-$build html |
| cd ../.. |
| |
| # creating tar ball |
| puts "creating tar ball websh-$build-src.tar.gz" |
| exec tar czf ../websh-$build-src.tar.gz --exclude .svn websh-$build |
| |
| |
| # cleanup |
| cd .. |
| file delete -force $tmpdir |
| |
| puts "done." |