Whamcloud - gitweb
- changes for KML setting and variables in accordance with smfs plugin API
[fs/lustre-release.git] / lustrecvs
index 982e9d9..4436462 100755 (executable)
--- a/lustrecvs
+++ b/lustrecvs
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+LC_COLLATE="C"
 progname="${0##*/}"
 
 warn ()
@@ -18,13 +19,29 @@ fatal ()
 usage ()
 {
     cat <<EOF
-Usage: $progname lustretag
-  where lustretag is a tag of the lustre-core module
+Usage: $progname <lustretag>
+  where <lustretag> is a tag of the lustre-core module
 EOF
 }
 
+if [ -z "$LUSTRECVS_UPDATED" ] ; then
+    echo "$progname: updating lustrecvs"
+    cvs up -l || fatal 1 "Error updating lustrecvs"
+    export LUSTRECVS_UPDATED=yes
+    exec "$0" "$@"
+fi
+
+[ "$1" = "-r" ] && shift
+
 buildtag="HEAD"
 lustretag="$1"
+shift
+
+if [ "$*" ] ; then
+    usage >&2
+    exit 1
+fi
+
 
 case "$lustretag" in
     '')
@@ -48,21 +65,26 @@ esac
 
 cvs_cmd ()
 {
-    local dir="$1"
-    local module="$2"
-    local tag="$3"
-    local cvstag=""
+    dir="$1"
+    module="$2"
+    tag="$3"
+    cotag=""
+    update=""
 
-    if [ "$tag" != "HEAD" ] ; then
-       cvstag="-r $tag"
+    if [ "$tag" = "HEAD" ] ; then
+       cotag=""
+       uptag="-A"
+    else
+       cotag="-r $tag"
+       uptag="-r $tag"
     fi
 
     if [ -d "$dir" ] ; then
        echo "$progname: Updating $dir to $tag"
-       ( cd "$dir" && cvs up $cvstag )
+       ( cd "$dir" && cvs up -dP $uptag )
     else
        echo "$progname: Checking out $dir from $tag"
-       cvs co $cvstag -d "$dir" "$module"
+       cvs co -P $cotag -d "$dir" "$module"
     fi
 }