changeset 100:793467b5e61c

Don't use subrepos, they're too fragile. Just use a list of repos and a script instead.
author Chris Cannam
date Fri, 04 Sep 2015 12:01:02 +0100
parents f51f242840d5
children c530137014c0
files .hgsub .hgsubstate METADATA/repos.txt SCRIPTS/process.sh SCRIPTS/summarise.sh SCRIPTS/update-all.sh
diffstat 6 files changed, 57 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsub	Wed Aug 12 16:05:17 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-vamp-plugin-sdk = https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk
-vamp-plugin-tester = https://code.soundsoftware.ac.uk/hg/vamp-plugin-tester
-vamp-aubio-plugins = https://code.soundsoftware.ac.uk/hg/vamp-aubio-plugins
-# mazurka-plugins = https://code.soundsoftware.ac.uk/hg/mazurka-plugins
-qm-vamp-plugins = https://code.soundsoftware.ac.uk/hg/qm-vamp-plugins
-segmenter-vamp-plugin = https://code.soundsoftware.ac.uk/hg/segmenter-vamp-plugin
-vamp-libxtract-plugins = https://code.soundsoftware.ac.uk/hg/vamp-libxtract-plugins
-vamp-onsetsds-plugin = https://code.soundsoftware.ac.uk/hg/vamp-onsetsds-plugin
-vamp-test-plugin = https://code.soundsoftware.ac.uk/hg/vamp-test-plugin
-match-vamp = https://code.soundsoftware.ac.uk/hg/match-vamp
-vampy = https://code.soundsoftware.ac.uk/hg/vampy
-nnls-chroma = https://code.soundsoftware.ac.uk/hg/nnls-chroma
-pyin = https://code.soundsoftware.ac.uk/hg/pyin
-silvet = https://code.soundsoftware.ac.uk/hg/silvet
-constant-q-cpp = https://code.soundsoftware.ac.uk/hg/constant-q-cpp
-# predomino = https://code.soundsoftware.ac.uk/hg/predomino
-vamp-tempogram = https://code.soundsoftware.ac.uk/hg/vamp-tempogram
-vamp-simple-cepstrum = https://code.soundsoftware.ac.uk/hg/vamp-simple-cepstrum
-cepstral-pitchtracker = https://code.soundsoftware.ac.uk/hg/cepstral-pitchtracker
-tempest = https://code.soundsoftware.ac.uk/hg/tempest
-miredu = [git]https://github.com/MTG/miredu
--- a/.hgsubstate	Wed Aug 12 16:05:17 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-29936292cec05fe06756baa9e51f43f04481175c cepstral-pitchtracker
-500416b7a651efa2a334ef0ee75fffde0d1f755d constant-q-cpp
-cb3098285a521f0ae6a479d948b7e6ad0ec01e9b match-vamp
-96c11ea1deeb1c00c5c9429663a5c9ec95a8f3b3 miredu
-c585c95f2d860a96c6a66c8cd1a51a1292a2358b nnls-chroma
-060ae29d3fdf1d976571f6ac19ffdf4772a8eb8f pyin
-8e3a0da83e87973a1c83abb16453dd3500a8b4f5 qm-vamp-plugins
-11a826034a9d67fc3ba36ceea052ccd4554f82f2 segmenter-vamp-plugin
-eee4c7fd15abdd0142cef229f87f81f46845f471 silvet
-f6597489acf5f93163214874c0cd346d6e65ed95 tempest
-3aee7fc5c39cd1b856030ea452de7abfe62f033e vamp-aubio-plugins
-81146373f024be1c82371f04262cf2ae1680cb61 vamp-libxtract-plugins
-8bc4ec815b6b695371dc9dda500191892ca5d2a7 vamp-onsetsds-plugin
-c42aeb56d8288001ff45d6f00594e5f5b1e8f3de vamp-plugin-sdk
-436a14a12242ea195c18076321892660c89e906a vamp-plugin-tester
-f021dc97da29d9c92cfec37b0a100723b6921f3e vamp-simple-cepstrum
-02721bb9c4f07dadfe5fd32e2ac9d6f6958749a5 vamp-tempogram
-89e7c9a834d3ec05cece0ed1c4b9a8ac825775e8 vamp-test-plugin
-f5c028376bf9331e5eeeed2e25d1edf61bdfb79f vampy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/METADATA/repos.txt	Fri Sep 04 12:01:02 2015 +0100
@@ -0,0 +1,22 @@
+vamp-plugin-sdk = https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk
+vamp-plugin-tester = https://code.soundsoftware.ac.uk/hg/vamp-plugin-tester
+vamp-aubio-plugins = https://code.soundsoftware.ac.uk/hg/vamp-aubio-plugins
+mazurka-plugins = https://code.soundsoftware.ac.uk/hg/mazurka-plugins
+qm-vamp-plugins = https://code.soundsoftware.ac.uk/hg/qm-vamp-plugins
+segmenter-vamp-plugin = https://code.soundsoftware.ac.uk/hg/segmenter-vamp-plugin
+vamp-libxtract-plugins = https://code.soundsoftware.ac.uk/hg/vamp-libxtract-plugins
+vamp-onsetsds-plugin = https://code.soundsoftware.ac.uk/hg/vamp-onsetsds-plugin
+vamp-test-plugin = https://code.soundsoftware.ac.uk/hg/vamp-test-plugin
+match-vamp = https://code.soundsoftware.ac.uk/hg/match-vamp
+vampy = https://code.soundsoftware.ac.uk/hg/vampy
+nnls-chroma = https://code.soundsoftware.ac.uk/hg/nnls-chroma
+pyin = https://code.soundsoftware.ac.uk/hg/pyin
+silvet = https://code.soundsoftware.ac.uk/hg/silvet
+constant-q-cpp = https://code.soundsoftware.ac.uk/hg/constant-q-cpp
+predomino = https://code.soundsoftware.ac.uk/hg/predomino
+vamp-tempogram = https://code.soundsoftware.ac.uk/hg/vamp-tempogram
+vamp-simple-cepstrum = https://code.soundsoftware.ac.uk/hg/vamp-simple-cepstrum
+cepstral-pitchtracker = https://code.soundsoftware.ac.uk/hg/cepstral-pitchtracker
+tempest = https://code.soundsoftware.ac.uk/hg/tempest
+miredu = https://github.com/MTG/miredu
+ua-vamp-plugins = https://github.com/pertusa/UAVampPlugins
--- a/SCRIPTS/process.sh	Wed Aug 12 16:05:17 2015 +0100
+++ b/SCRIPTS/process.sh	Fri Sep 04 12:01:02 2015 +0100
@@ -162,7 +162,7 @@
 
 plugindirs="$@"
 if [ -z "$plugindirs" ]; then
-    plugindirs=$(cat .hgsub | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
+    plugindirs=$(cat METADATA/repos.txt | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
 else 
     for dir in $plugindirs ; do
 	if [ ! -d "$dir" ]; then
--- a/SCRIPTS/summarise.sh	Wed Aug 12 16:05:17 2015 +0100
+++ b/SCRIPTS/summarise.sh	Fri Sep 04 12:01:02 2015 +0100
@@ -7,7 +7,7 @@
 
 plugindirs="$@"
 if [ -z "$plugindirs" ]; then
-    plugindirs=$(cat .hgsub | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
+    plugindirs=$(cat METADATA/repos.txt | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
 else 
     for dir in $plugindirs ; do
 	if [ ! -d "$dir" ]; then
--- a/SCRIPTS/update-all.sh	Wed Aug 12 16:05:17 2015 +0100
+++ b/SCRIPTS/update-all.sh	Fri Sep 04 12:01:02 2015 +0100
@@ -1,14 +1,37 @@
 #!/bin/bash
 
+set -eu
+
 # Run this from the top-level vamp-build-and-test directory
 
-cat .hgsub | grep -v '^#' | awk '{ print $1 }' | while read x; do
-    if [ -d "$x"/.hg ]; then 
-	( cd $x ; hg pull && hg update )
-    elif [ -d "$x"/.git ]; then 
-	( cd $x ; git pull )
-    else 
-	url=$(grep "^$x " .hgsub | awk '{ print $3; }')
-	hg clone "$url" "$x"
-    fi
-done
+failed=/tmp/failed_$$
+rm -f "$failed"
+trap "rm -f $failed" 0
+
+cat METADATA/repos.txt | grep -v '^#' | awk -F= '{ print $1, $2 }' |
+    while read name loc; do
+	if [ -d "$name"/.hg ]; then 
+ 	    ( cd $name ; hg pull && hg update ) || echo "$name" >> "$failed"
+	elif [ -d "$name"/.git ]; then 
+ 	    ( cd $name ; git pull ) || echo "$name" >> "$failed"
+	elif [ -d "$name" ]; then
+	    echo "ERROR: Directory \"$name\" exists, but is not a git or hg repo" 1>&2
+	    exit 1
+	else
+	    case "$loc" in
+		*/hg/*)
+		    hg clone "$loc" "$name" || echo "$name" >> "$failed";;
+		*//git*)
+		    git clone "$loc" "$name" || echo "$name" >> "$failed";;
+		*)
+		    echo "ERROR: Can't deduce repo type from URL \"$loc\"" 1>&2
+		    exit 1;;
+	    esac
+	fi
+    done
+
+echo "Done"
+if [ -f "$failed" ]; then
+    echo "Failed repos:"
+    cat "$failed"
+fi