From d627b6bd8a91efe3fbf3ac4b7da0d45390ec2e90 Mon Sep 17 00:00:00 2001 From: Alain Reguera Delgado Date: Oct 28 2010 14:33:26 +0000 Subject: Add cli_commitRepoChanges.sh function: - This function must be called after each modification action you apply over repository files. This function implements the standard way of look for changes, see differences, and commit them up to central repository. --- diff --git a/Scripts/Bash/Functions/cli_commitRepoChanges.sh b/Scripts/Bash/Functions/cli_commitRepoChanges.sh new file mode 100755 index 0000000..103ce43 --- /dev/null +++ b/Scripts/Bash/Functions/cli_commitRepoChanges.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# cli_commitRepoChanges.sh -- This function looks for changes inside +# absolute path passed as option value and ask you to commit them up +# to central repository. Use this function wherever you make a change +# to repository files. It is better to commit small changes than long +# ones. +# +# Copyright (C) 2009-2010 Alain Reguera Delgado +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# ---------------------------------------------------------------------- +# $Id$ +# ---------------------------------------------------------------------- + +function cli_commitRepoChanges { + + local FILES='' + local COUNT=0 + + # Define list of changed files. + FILES=$(svn status $OPTIONVAL | egrep '^M' | cut -d' ' -f7) + + # Define number of changed files. + COUNT=$(echo "$FILES" | wc | sed -r 's!^ *!!' | cut -d' ' -f1) + + # Check list of changed files and ask the user to commit changes + # if there is any. + if [[ $COUNT -gt 0 ]];then + + cli_printMessage "`ngettext "The following file was changed" \ + "The following files were changed" $COUNT`:" + + # Show list of affected entries. + for FILE in $FILES;do + cli_printMessage "$FILE" "AsResponseLine" + done + + # Verify changes. + cli_printMessage "`gettext "Do you want to see these changes now?"`" "AsYesOrNoRequestLine" + svn diff $FILES | less + + # Commit changes. + cli_printMessage "`gettext "Do you want commit these changes now?"`" "AsYesOrNoRequestLine" + svn commit $FILES + fi + +}