Ieri sera ho giocato un po’ con Subversion, cercavo la possibilita’ di effettuare un post sul blog in seguito ad un commit. Conoscevo la presenza dei famosi post-commit hooks, ma quelli presenti erano relativi all’invio di una mail. Ho rispolverato il mio Python, e ho scritto questo script che, tramite l’uso della libreria xmlrpclib, contatta il servizio XML-RPC interno a WordPress, e provvede alla creazione di un nuovo post contenente i dati relativi al messaggio del commit, e l’elenco dei files modificati (questi ultimi due dati mi arrivano tramite l’invocazione del comando svnlook).
Lo script e’ veramente semplice, e molto customizzabile, spero possa essere un buono spunto per qualcuno.

Ah, ne ho parlato anche nell’ user group del Google Project Hosting, spero che mi ascoltino…

Ecco il codice

#!/usr/bin/python

import sys
import xmlrpclib
import os

xmlrpc_url = "http://localhost/wp/xmlrpc.php"
xmlrpc_username = "admin"
xmlrpc_password = "admin"
post_title = "Commit log"

repos = sys.argv[1]
rev = sys.argv[2]

log_message = os.popen('svnlook log ' + repos).read()
affected_files = os.popen('svnlook changed ' + repos).read()

server = xmlrpclib.Server(xmlrpc_url)
server.metaWeblog.newPost(1,xmlrpc_username,xmlrpc_password,{"title":post_title, "description":"Message: " + log_message + "Affetcted files: \n" + affected_files},bool(1))

Alla prox

[tags]subversion, python, XML-RPC, post-commit hooks, wordpress[/tags]