#!/usr/bin/env tclsh

set sep    _______________________________________________________________
set blank [string map {_ { }} $sep]

source [file dirname [info script]]/config.tcl

foreach {name location} $gitconfig {
    set h [pwd]
    if {![file exists $name]} {
	puts "$sep Retrieving $name"
	puts "$blank from $location"
	exec >@ stdout 2>@ stderr git clone $location $name
    } else {
	puts "$sep Updating $name"
	puts "$blank from $location"
	cd $name
	catch { exec >@ stdout 2>@ stderr git pull }
	cd $h
    }
}

foreach {name location} $fossilconfig {
    set r ${name}.fossil

    if {![file exists $r]} {
	puts "$sep Retrieving $name"
	puts "$blank from $location"
	exec >@ stdout 2>@ stderr fossil clone $location $r --user anonymous
    } else {
	# Update from all mirrors.
	puts "$sep Updating $name"
	puts "$blank from $location"
	exec >@ stdout 2>@ stderr fossil pull $location -R $r --user anonymous
    }
}

puts $sep
exit
