chiark / gitweb /
support bzr
authorColin Watson <cjwatson@chiark.greenend.org.uk>
Mon, 15 May 2006 15:10:37 +0000 (15:10 +0000)
committerColin Watson <cjwatson@chiark.greenend.org.uk>
Mon, 15 May 2006 15:10:37 +0000 (15:10 +0000)
baz-update-config

index e992cf93f5a38b7d5f58a7006a8b4c85a53b355d..922b75a1b434e5b2b4542433d693a303045b6d80 100755 (executable)
@@ -18,14 +18,33 @@ for line in $(baz cat-config "$1"); do
        DIR="$1"
        VERSION="$2"
 
-       if [ -d "$DIR" ]; then
-               OLDVERSION="$(baz tree-version -d "$DIR")"
-               if [ "$VERSION" != "$OLDVERSION" ]; then
-                       baz switch -d "$DIR" "$VERSION"
-               else
-                       baz update -d "$DIR" "$VERSION"
-               fi
-       else
-               baz get "$VERSION" "$DIR"
-       fi
+       case $VERSION in
+               http://*)
+                       if [ -d "$DIR" ]; then
+                               if [ ! -d "$DIR/.bzr" ]; then
+                                       echo "$DIR is not a bzr checkout; cannot update" >&2
+                                       continue
+                               fi
+                               (cd "$DIR" && bzr pull "$VERSION")
+                       else
+                               bzr get "$VERSION" "$DIR"
+                       fi
+                       ;;
+               *)
+                       if [ -d "$DIR" ]; then
+                               if [ ! -d "$DIR/{arch}" ]; then
+                                       echo "$DIR is not an arch checkout; cannot update" >&2
+                                       continue
+                               fi
+                               OLDVERSION="$(baz tree-version -d "$DIR")"
+                               if [ "$VERSION" != "$OLDVERSION" ]; then
+                                       baz switch -d "$DIR" "$VERSION"
+                               else
+                                       baz update -d "$DIR" "$VERSION"
+                               fi
+                       else
+                               baz get "$VERSION" "$DIR"
+                       fi
+                       ;;
+       esac
 done