Brico shellscripts 2: Enviando commits de subversion a Twitter
Hace unos meses encontré este plugin aplicacion hecho en Ruby para enviar comiteos a Twitter: Snitch. Y apunté en mi lista de TODO’s hacer algo similar en php y shell script. Pues bien, como este año me he propuesto acabar todo lo que me empiezo, ya puedo tacharlo de la lista.
A continuación explicaré los pasos a seguir y pastearé el codigo para que podáis disfrutar de este juguete-aplicación vosotros también:
1) Para la parte de envio de data a twitter necesitaremos:
1.1) Un usuario de twitter especificamente para esto, recomiendo ponerlo en privado para que nuestros commits no sean públicos.
1.2) Esta función la usaremos para enchufarle los datos a twitter. Descargala y guardala nombrándola: twitterCurl.php (por ejemplo).
1.3) Creamos otro php con nuestro editor de textos favorito( le llamaremos twitter-commit.php) .
< ?php
include ('twitterCurl.php');
$username = 'mi_usuario_twittero';
$password = 'lapassword';
$data = $argv[1];
$data = urlencode($data);
postToTwitter($username,$password,$data);
?>
2) Ahora vamos con la parte de shell script y los hooks de subversion. Si no sabes lo que son los hooks de subversion recomiendo encarecidamente la lectura de este maravilloso artículo de Moisés Maciá donde lo explica perfectamente.
Bien, ahora que ya sabes lo que son los hooks pon este script pre-commit en el directorio hooks de la ruta de tu repositorio, por ejemplo: /var/svn/mirepositorio/hooks
#!/bin/sh
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
LOG=`$SVNLOOK log -t "$TXN" "$REPOS"`
USER=`$SVNLOOK author -t "$TXN" "$REPOS"`
CHANGED=`$SVNLOOK changed -t "$TXN" "$REPOS"`
DATA="[$USER]"" commits: ""$LOG""$CHANGED"
php -q /larutadelosphps/twitter-commit.php "$DATA"
Cambia la ruta de la última línea y acuérdate de darle permisos de ejecución al archivo:
chmod +x pre-commit
Pues ya está, cada vez que alguien haga un commit en ese repositorio se publicará en la cuenta de twitter del usuario que has creado.
Que lo disfruten.
