Posted to tcl by hypnotoad at Thu Dec 03 15:58:37 GMT 2015view raw

  1. proc fossil_dbfile {module} {
  2. if {[info exists ::fossil_dbfile($module)]} {
  3. return $::fossil_dbfile($module)
  4. }
  5. set ::fossil_dbfile($module) $file
  6. return $file
  7. }
  8.  
  9. set scriptfile [file join [pwd] [info script]]
  10. set tclsrcroot [file dirname [file dirname $scriptfile]]
  11. set fossilRepoPath [file join $tclsrcroot .. fossil]
  12.  
  13.  
  14. foreach line [split [exec fossil all list] \n] {
  15. set module [file rootname [file tail $file]]
  16. set fossil_dbfile($module) $line
  17. }
  18.  
  19. foreach {module url branch} {
  20. thread http://core.tcl.tk/thread trunk
  21. } {
  22. set fossdb [fossil_dbfile $module]
  23. if {![file exists $fossdb]} {
  24. fossil clone $url $fossdb
  25. }
  26. set srcpath [file join $tclsourceroot pkgs $module]]
  27. if {![file exists $srcpath]} {
  28. file mkdir $srcpath
  29. cd $srcpath
  30. exec fossil open $fossdb $branch --nested
  31. } else {
  32. cd $srcpath
  33. exec fossil update $branch
  34. }
  35. }