diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-01-14 18:55:43 -0200 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-01-14 18:55:43 -0200 |
commit | 0119808c10bedf5bc2a39206a32dbb8a6767a0fc (patch) | |
tree | 17c844770651718944a2932cd7447f62ad336df7 | |
parent | 85d03c77943b1ab8a38f2741bbc153c9e75faa4b (diff) | |
download | scripts-0119808c10bedf5bc2a39206a32dbb8a6767a0fc.tar.gz scripts-0119808c10bedf5bc2a39206a32dbb8a6767a0fc.tar.bz2 |
Adding git_folder into commit script
-rwxr-xr-x | commit | 67 |
1 files changed, 61 insertions, 6 deletions
@@ -3,23 +3,77 @@ # Commit both on git and svn # +# Get the absolute folder from a file +# Usage: absolute_folder <file> +function absolute_folder { + + local file="$1" cwd + + if [ -e "$file" ]; then + cwd="`pwd`" + cd `dirname $file` + pwd + cd $cwd + fi + +} + +# Check if a file is inside a git repository +# Usage: git_folder <file> +function git_folder { + + local file="$1" folder folders dir_list cwd + + if [ -e "$file" ]; then + folder="`absolute_folder $file`" + fi + + if [ -d "$folder/.git" ]; then + GIT_FOLDER="$folder" + return + fi + + # reverse folder order + dir_list="`echo $folder | tr '/' ' '`" + for i in $dir_list; do + folders="$i $folders" + done + + cwd="`pwd`" + cd $folder + +echo folders: $folders + for i in $folders; do + cd .. + if [ -d "$(pwd)/.git" ]; then + cd $cwd + GIT_FOLDER="$(pwd)" + return true + fi + done + + cd $cwd + return 1 + +} + # Check if a folder is inside a git repository function is_git { # simple git folder checker # usage: is_git <folder> if [ -z "$1" ]; then - false + return 1 elif [ ! -d "$1" ]; then - false + return 1 elif [ -d "$1/.git" ]; then - true + return else ( cd "$1" && git status &> /dev/null ) if [ "$?" != "128" ]; then - true + return else - false + return 1 fi fi } @@ -49,7 +103,7 @@ function git_push { # Check user information function git_user { - if ! grep -q "^\[user\]" .git/config; then + if ! grep -q "^\[user\]" $GIT_FOLDER/.git/config; then echo "No user configuration section found in the repository." echo "This might be a privacy issue" @@ -70,6 +124,7 @@ if [ ! -z "$1" ]; then fi if is_git .; then + git_folder $(pwd) git_user git commit -a -m "$*" git_push |