Index: openacs-4/packages/acs-admin/www/apm/build-repository.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-admin/www/apm/Attic/build-repository.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-admin/www/apm/build-repository.tcl 26 Jan 2004 13:06:04 -0000 1.7 +++ openacs-4/packages/acs-admin/www/apm/build-repository.tcl 11 Feb 2004 16:28:05 -0000 1.8 @@ -10,6 +10,7 @@ set cvs_command "cvs" set cvs_root ":pserver:anonymous@openacs.org:/cvsroot" +set dotlrn_cvs_root ":pserver:anonymous@dotlrn.openacs.org:/dotlrn-cvsroot" set work_dir "[acs_root_dir]/repository-builder/" @@ -34,12 +35,12 @@ #---------------------------------------------------------------------- # Prepare work dir -publish::mkdirs $work_dir +file mkdir $work_dir cd $work_dir catch { exec $cvs_command -d $cvs_root -z3 co openacs-4/readme.txt } -catch { exec $cvs_command -d $cvs_root -z3 log -h openacs-4/ } output +catch { exec $cvs_command -d $cvs_root -z3 log -h openacs-4/readme.txt } output set lines [split $output \n] for { set i 0 } { $i < [llength $lines] } { incr i } { @@ -53,29 +54,25 @@ array set channel_bugfix_version [list] for { } { $i < [llength $lines] } { incr i } { + # Tag lines have the form tag: cvs-version + # openacs-5-0-0-final: 1.25.2.5 + if { ![regexp {^\s+([^:]+):\s+([0-9.]+)} [lindex $lines $i] match tag_name version_name] } { break } - if { [regexp {^(oacs|openacs)-(.*)-final$} $tag_name match ignore oacs_version] } { + + # Look for tags named 'openacs-x-y-compat' + if { [regexp {^openacs-([1-9][0-9]*-[0-9]+)-compat$} $tag_name match oacs_version] } { set major_version [lindex [split $oacs_version "-"] 0] set minor_version [lindex [split $oacs_version "-"] 1] - set bugfix_version [lindex [split $oacs_version "-"] 2] - if { ![regexp {^[0-9]*$} $bugfix_version] } { - set bugfix_version 0 - } if { $major_version >= 5 } { set channel "${major_version}-${minor_version}" - ns_write "
  • Processing channel $channel - tag $tag_name\n" + ns_write "
  • Found channel $channel using tag $tag_name\n" - if { ![info exists channel_bugfix_version($channel)] || $channel_bugfix_version($channel) < $bugfix_version } { - set channel_tag($channel) $tag_name - set channel_bugfix_version($channel) $bugfix_version - } else { - ns_write "(skipping because we already have a later tag on this channel)" - } + set channel_tag($channel) $tag_name } } } @@ -90,23 +87,22 @@ # Read all package .info files, building manifest file #---------------------------------------------------------------------- -# Wipe the repository dir -file delete -force "${work_dir}repository/" - # Wipe and re-create the working directory file delete -force $work_dir -publish::mkdirs $work_dir +file mkdir ${work_dir} cd $work_dir foreach channel [lsort -decreasing [array names channel_tag]] { ns_write "
  • Starting channel $channel with tag $channel_tag($channel)\n" # Wipe and re-create the checkout directory file delete -force "${work_dir}openacs-4" + file delete -force "${work_dir}dotlrn" + file mkdir -force "${work_dir}dotlrn/packages" # Prepare channel directory set channel_dir "${work_dir}repository/${channel}/" - publish::mkdirs $channel_dir + file mkdir $channel_dir # Store the list of packages we've seen for this channel, so we don't include the same package twice # Seems odd, but we have to do this given the forked packages sitting in /contrib @@ -116,15 +112,25 @@ if { ![string equal $channel_tag($channel) HEAD] } { catch { exec $cvs_command -d $cvs_root -z3 co -r $channel_tag($channel) openacs-4/packages } output catch { exec $cvs_command -d $cvs_root -z3 co -r $channel_tag($channel) openacs-4/contrib/packages } output + cd ${work_dir}dotlrn/packages/ + catch { exec $cvs_command -d $dotlrn_cvs_root -z3 co -r $channel_tag($channel) dotlrn-core } output + cd $work_dir } else { catch { exec $cvs_command -d $cvs_root -z3 co openacs-4/packages } output catch { exec $cvs_command -d $cvs_root -z3 co openacs-4/contrib/packages } output + cd ${work_dir}dotlrn/packages/ + catch { exec $cvs_command -d $dotlrn_cvs_root -z3 co dotlrn-core } output + cd $work_dir } - + set manifest {} append manifest \n - foreach packages_dir [list "${work_dir}openacs-4/packages" "${work_dir}openacs-4/contrib/packages"] { + foreach packages_dir \ + [list "${work_dir}openacs-4/packages" \ + "${work_dir}openacs-4/contrib/packages" \ + "${work_dir}dotlrn/packages"] { + foreach spec_file [lsort [apm_scan_packages $packages_dir]] { set package_path [eval file join [lrange [file split $spec_file] 0 end-1]]