diff --git a/jka-toolkit/gitdit b/jka-toolkit/gitdit index b2d7975..5a4c54a 100755 --- a/jka-toolkit/gitdit +++ b/jka-toolkit/gitdit @@ -1,68 +1,85 @@ #!/bin/bash -VERSION="0.2.1" +# gitdit, a dialog interface to manage git repositories +# Author: JKA Network - contacto@jkanetwork.com + +VERSION="0.2.2" +#First check if the user is in a git repository preOption=$(git status 2>/dev/stdout | sed -n 1p | cut -f2 -d" ") -if [ $preOption = "Not" ];then +if [ $preOption = "Not" ];then #When it isn't only it can do git clone gitopt=`dialog --stdout --scrollbar --menu "gitdit - Git DIalog inTerface" 0 0 6 c "Descargar un nuevo git (Hacer clone)"` -else +else #Else, all other options gitopt=`dialog --stdout --scrollbar --menu "gitdit - Git DIalog inTerface" 0 0 6 p "Descargar actualizaciones del git (Hacer pull)" t "Confirmar cambios sin subida" s "Subir actualizaciones al git (Hacer push)" n "Crear nueva rama" b "Cambiar de branch/rama (Hacer checkout)" m "Unir ramas (Hacer merge)"` - actual="origin $(git branch --list | grep "^*" | cut -f2 -d" ")" + actual="origin $(git branch --list | grep "^*" | cut -f2 -d" ")" #Current branch fi -case $gitopt in - "p") git pull $actual;; - "s") commit=`dialog --stdout --inputbox "Cambios (texto commit)" 10 50 "changes"` - if [[ -z $commit ]];then - commit="changes" - fi - git add . && git commit -m "$commit" && git push $actual - ;; - "c") - giturl=`dialog --stdout --inputbox "URL del git" 10 60` - git clone $giturl - ;; - "t") - commit=`dialog --stdout --inputbox "Cambios (texto commit)" 10 50 "changes"` - if [[ -z $commit ]];then - commit="changes" - fi - git add . && git commit -m "$commit" - ;; - "b") - j=0 - rama="" - for i in $(git branch --list | grep "^*" -v ) - do - if [ $i != "*" ];then - rama="$rama $j $i" - lista[$j]=$i - let j++ +if [ ! -z $gitopt ];then #No canceled + case $gitopt in + "p") + git pull $actual;; + "s") + estado=$(git status | wc -l) #It need to commit something? + if [ $estado -ne 2 ];then #When is necesary commit + commit=`dialog --stdout --inputbox "Cambios (texto commit)" 10 50 "changes"` + if [[ -z $commit ]];then + commit="changes" + fi + git add . && git commit -m "$commit" && git push $actual + else #Nothing to commit, only push + git push $actual + fi + ;; + "c") + giturl=`dialog --stdout --inputbox "URL del git" 10 60` + if [ -z $giturl ];then + echo "NingĂșn repositorio especificado" + exit + fi + git clone $giturl + ;; + "t") + commit=`dialog --stdout --inputbox "Cambios (texto commit)" 10 50 "changes"` + if [[ -z $commit ]];then + commit="changes" + fi + git add . && git commit -m "$commit" + ;; + "b") + j=0 + rama="" + for i in $(git branch --list | grep "^*" -v ) + do + if [ $i != "*" ];then + rama="$rama $j $i" + lista[$j]=$i + let j++ + fi + done + ramificacion=`dialog --stdout --scrollbar --menu "Selecione la rama a saltar" 0 0 6 $rama` + if [ ! -z $ramificacion ];then + git checkout ${lista[$ramificacion]} + fi + ;; + "n") + NewBranch=`dialog --stdout --inputbox "Nombre de la nueva rama" 10 50 "new branch"` + if [ ! -z $NewBranch ];then + git checkout -b $NewBranch + fi + ;; + "m") + j=0 + rama="" + for i in $(git branch --list | grep "^*" -v ) + do + if [ $i != "*" ];then + rama="$rama $j $i" + lista[$j]=$i + let j++ + fi + done + merges=`dialog --stdout --scrollbar --menu "Selecione la rama a unir a $(git branch --list | grep "^*" | cut -f2 -d" ")" 0 0 6 $rama` + if [ ! -z $merges ];then + git merge ${lista[$merges]} + git push fi - done - ramificacion=`dialog --stdout --scrollbar --menu "Selecione la rama a saltar" 0 0 6 $rama` - if [ ! -z $ramificacion ];then - git checkout ${lista[$ramificacion]} - fi - ;; - "n") - NewBranch=`dialog --stdout --inputbox "Nombre de la nueva rama" 10 50 "new branch"` - if [ ! -z $NewBranch ];then - git checkout -b $NewBranch - fi - ;; - "m") - j=0 - rama="" - for i in $(git branch --list | grep "^*" -v ) - do - if [ $i != "*" ];then - rama="$rama $j $i" - lista[$j]=$i - let j++ - fi - done - merges=`dialog --stdout --scrollbar --menu "Selecione la rama a unir a $(git branch --list | grep "^*" | cut -f2 -d" ")" 0 0 6 $rama` - if [ ! -z $merges ];then - git merge ${lista[$merges]} - git push - fi - ;; -esac + ;; + esac +fi \ No newline at end of file