diff --git a/README.md b/README.md index 2196b15..6cb09c2 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ GENERAL USAGE NOTES -------------------- * JKA Toolkit is a set of script to make easiest of Linux terminal * Now this kit include: - * apw - a package wrapper - Version 1.8 + * apw - a package wrapper - Version 1.9 * A wrapper to manage package managers of the differents Linux distributions, compatible with the families of *Debian, Archlinux, RedHat, CentOS, OpenSuse* and *Void Linux* - * jkazip - Version 2.0.2 + * jkazip - Version 2.0.3 * A script which use the differents zip and unzip programs, support *tar, lzip, lzma (xz), zip, 7zip, gzip, bzip2* and *rar* (only for unzip) - * gitdit - GIT DIalog inTerface Version 0.1 + * gitdit - GIT DIalog inTerface Version 0.2.2 * A dialog interface to manage git repositories with *pull, add-commit-push, clone, checkout,* and *merge* Contact diff --git a/jka-toolkit/gitdit b/jka-toolkit/gitdit index 67b0bcb..1b80a97 100755 --- a/jka-toolkit/gitdit +++ b/jka-toolkit/gitdit @@ -1,63 +1,91 @@ #!/bin/bash -VERSION="0.2.0" -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)" c "Descargar un nuevo git (Hacer clone)" n "Crear nueva rama" b "Cambiar de branch/rama (Hacer checkout)" m "Unir ramas (Hacer merge a la rama actual)"` -actual="origin $(git branch --list | grep "^*" | cut -f2 -d" ")" -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++ +# gitdit, a dialog interface to manage git repositories +# Author: JKA Network - contacto@jkanetwork.com + +VERSION="0.2.3" +#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 #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 repo (Hacer clone)"" i "Inicializar nuevo repo"` +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" ")" #Current branch +fi +if [ ! -z $gitopt ];then #No canceled + case $gitopt in + #Not staying in a git repo + "i") + git init + ;; + "c") + giturl=`dialog --stdout --inputbox "URL del git" 10 60` + if [ -z $giturl ];then + echo "NingĂșn repositorio especificado" + exit + fi + git clone $giturl + ;; + #Staying in a git repo + "p") + git pull $actual;; + "s") + estado=$(git status | grep "^Changes" ) #It need to commit something? + if [ $estado ];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 + ;; + "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="" + #Loop to create dialog whith all branches (except the current) + for i in $(git branch --list | grep "^*" -v ) + do + if [ $i != "*" ];then + rama="$rama $j $i" + lista[$j]=$i #Array with the names of branches + 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