Crear el comando personalizado (Para zsh es una función)

  1. Abrir el archivo .zshrc
  2. Al final (o donde quieras) definí la función con el nombre de tu comando.
function start() {
    if [ -n "$1" ] # Si la función fue llamada con argumentos:
    then
        git flow feature start "$1" 
    else
        echo "Pasá un nombre de branch"
    fi
}
 
# Ejemplo
 
start
> Pasá un nombre de branch
 
start new-feature
> Se ejecuta "git flow feature start new-feature"
  1. Por último, para “avisarle” a zsh que esta función existe ejecutamos source .zshrc (Si estamos en nuestro home)

Utilizar variables y otros programas dentro de nuestro comando

La contraparte del ejemplo de arriba es un poco más compleja pero sirve para ver otros tips.

function finish() { 
    # Guarda en "branch" el nombre del branch actual
    local branch=$(git rev-parse --abbrev-ref HEAD)
 
    if [ $branch != "develop" ]
    then
        git flow feature finish -F
    else
        echo "Estás en $branch perro"
    fi
}
 
# Ejemplo
 
# En un repo git en la rama "develop"
(develop) finish
> Estás en develop perro
 
(new-feature) finish
> Se ejecuta "git flow feature finish new-feature -F"

Debugging 🐛

zsh provee un debugger para probar nuestros comandos.

  1. functions -t <nombre_del_comando>
  2. Cuando ejecutamos nuestro comando, zsh imprime cada línea de la función que se ejecuta reemplazando las variables por los valores reales.
functions -t finish
finish
+finish:2> git rev-parse --abbrev-ref HEAD
+finish:2> local branch=develop
+finish:4> [ develop '!=' develop ']'
+finish:8> echo 'Estás en develop perro'
Estás en develop perro