#!/bin/bash VCS_SUPPORTED="GIT, Subversion or Mercurial" print_usage() { echo "$(basename $0) -- status for version control (${VCS_SUPPORTED})." echo "Usage: $(basename $0) [OPTIONS...]" } if [ "x${1}" = "x--help" ]; then print_usage 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 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 ${VCS_SUPPORTED} repository" exit 1 fi