Ajout Mercurial
[hvlinux.git] / stage2 / hv-utilities / vs
index e34a780..6719db1 100755 (executable)
@@ -1,8 +1,10 @@
 #!/bin/bash
 
+VCS_SUPPORTED="GIT, Subversion or Mercurial"
+
 print_usage()
 {
-    echo "$(basename $0) -- status for version control (svn or git)."
+    echo "$(basename $0) -- status for version control (${VCS_SUPPORTED})."
     echo "Usage: $(basename $0) [OPTIONS...]"
 }
 
@@ -11,11 +13,25 @@ if [ "x${1}" = "x--help" ]; then
     exit 1
 fi
 
+SVN_ST_UNKNOWN_COLOR=$(echo -e '\033[1;34m')  # Blue
+SVN_ST_DELETED_COLOR=$(echo -e '\033[0;31m')  # Red
+SVN_ST_MISSING_COLOR=$(echo -e '\033[1;31m')  # Red
+SVN_ST_ADDED_COLOR=$(echo -e '\033[1;32m')    # Green
+SVN_ST_MODIFIED_COLOR=$(echo -e '\033[1;33m') # Yellow
+NORMAL=$(echo -e '\033[0m')
+
 if git diff 1> /dev/null 2>&1; then
     git status "$@"
-elif [ -d .svn ]; then
-    svn status "$@"
+elif svn diff 1> /dev/null 2>&1; then
+    svn status --ignore-externals "$@" | grep -v "^X" | \
+        sed -e "s/^\?.*$/${SVN_ST_UNKNOWN_COLOR}\0${NORMAL}/" \
+        -e "s/^!.*$/${SVN_ST_MISSING_COLOR}\0${NORMAL}/" \
+        -e "s/^A.*$/${SVN_ST_ADDED_COLOR}\0${NORMAL}/" \
+        -e "s/^M.*$/${SVN_ST_MODIFIED_COLOR}\0${NORMAL}/" \
+        -e "s/^D.*$/${SVN_ST_DELETED_COLOR}\0${NORMAL}/"
+elif hg status 1> /dev/null 2>&1; then
+    hg status "$@"
 else
-    echo "Not a GIT or Subversion repository"
+    echo "Not a ${VCS_SUPPORTED} repository"
     exit 1
 fi