Programación en grupo desde la consola
'Pair Programming' desde la consola en GNU/Linux
La "programación por pares/parejas" es ponerse dos personas sobre el mismo código de un programa y alternar el tiempo de tecleo mientras se van comentando las tareas que se van desarrollando...
Hasta no hace poco, no sabía que lo que yo hacía con mis compañeros desde hace años es lo que ahora denominan "pair programming".
Casi siempre lo he realizado desde la consola y usando Vim.
La solución más cómoda para no tener que ponerse varios sobre el mismo teclado es usar tmux.
Os dejo mi script para generar un entorno de pair-programming en Linux:
#!/bin/bash
# Author: Luis GuLo
CONEXION=""
function ForAlls() {
sleep 1
" tmux -S /tmp/$CONEXION send-keys "chmod 777 /tmp/$CONEXION;clear
}
if [ -n "$1" ] && [ -n "$2" ] ; then {
CONEXION="$2"
if [ "$1" = "crear" ] ; then {
echo "Creando conexion $2 Pair-Programming"
echo "Espere..."
ForAlls&
tmux -S /tmp/$2 new -s $2
rm -f /tmp/$2
clear
}
fi
if [ "$1" = "conectar" ] ; then {
echo "Intentando conexion Pair-Programming a $2"
echo "Espere..."
sleep 1
tmux -S /tmp/$2 attach -t $2
clear
}
fi
} else {
echo
echo " $(basename $0) - PAIR PROGRAMMING (Programación por Pares desde la Bash)"
echo " 🐧 Luis GuLo"
echo
echo " USO:"
echo " $(basename $0) crear <etiqueta> => CREAR un entorno de pair-programming con nombre <etiqueta>"
echo " $(basename $0) conectar <etiqueta> => CONECTAR con pair-programming en uso denominado <etiqueta>"
echo
}
fi
He tenido que realizar un pequeño truco, para solventar un pequeño problema de tmux, debido a que los sockets que genera tmux no los puede usar otro usuario.
Truco del script:
Tras generarse el socket y realizar la conexion tmux, se llama a la función en background (efectivamente se pueden llamar a funciones en segundo plano en los scripts bash).
Esta función cambia automaticamente desde la primera shell los permisos del socket para que sean accesibles por todos.
El uso del script es muy sencillo, la persona que quiera compartir su consola lanza el script con las opciones de crear nombre_sesion
./pair-programming.sh crear sesion-luis
Las personas que quieran conectarse simplemente ejecutarían el script pero usando la opción conectar nombre_sesion:
./pair-programming.sh conectar sesion-luis