]> Frank Brehm's Git Trees - scripts/solaris.git/commitdiff
checkin rehursiv gemacht
authorFrank Brehm <frank@brehm-online.com>
Sat, 11 Dec 2010 07:11:30 +0000 (07:11 +0000)
committerFrank Brehm <frank@brehm-online.com>
Sat, 11 Dec 2010 07:11:30 +0000 (07:11 +0000)
checkin

diff --git a/checkin b/checkin
index ad8aff860719d11085b4b6a20375171cb762485f..46b3bd7f46aa4bfee8f206af5ffe62ca7e4b6b42 100755 (executable)
--- a/checkin
+++ b/checkin
@@ -42,6 +42,55 @@ shift $((OPTIND-1))
 #echo "Noch vorhandene Parameter: $@"
 #echo "Zu nehmende Botschaft: '${MSG}'"
 
+checkin_dir_recursive() {
+
+       DIR="$1"
+       DELIM="
+"
+       OIFS="${IFS}"
+
+       if [ -n "${VERBOSE}" ] ; then
+               echo
+               echo "Checking in directory '${DIR}' recursive ..."
+       fi
+
+       ARGS=( )
+       if [ -n "${VERBOSE}" ] ; then
+               ARGS=( "${ARGS[@]}" "-v" )
+       fi
+       if [ -n "${ALLWAYS_YES}" ] ; then
+               ARGS=( "${ARGS[@]}" "-y" )
+       fi
+       if [ -n "${MSG}" ] ; then
+               ARGS=( "${ARGS[@]}" "-m" )
+               ARGS=( "${ARGS[@]}" "${MSG}" )
+       fi
+
+       list=()
+       IFS="${DELIM}"
+       for item in $( ls -A1d "${DIR}"/* "${DIR}"/.[^.]* 2>/dev/null ); do
+               #echo "item: '${item}'"
+               dont_checkin=
+               BASENAME="$( basename ${item} )"
+               for name in ".rcs" "RCS" ".svn" ".git" ; do
+                       if [ "${BASENAME}" == "${name}" ] ; then
+                               dont_checkin=y
+                               break
+                       fi
+               done
+               if [ "${dont_checkin}" == "y" ] ; then
+                       continue
+               fi
+               if [ -e "${item}" ] ; then
+                       list=( "${list[@]}" "${item}" )
+               fi
+       done
+       IFS="${OIFS}"
+       #echo "${list[@]}"
+       $0 "${ARGS[@]}" "${list[@]}"
+
+}
+
 for FILE in "$@"; do
 
        if [ ! -e "${FILE}" ] ; then
@@ -56,7 +105,7 @@ for FILE in "$@"; do
                if [ -n "${VERBOSE}" ] ; then
                        echo
                fi
-               echo "'${FILE}' is a directory - later ...." >&2
+               checkin_dir_recursive "${FILE}"
                continue
        fi