#!/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...]"
}
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