# Config.
-svncreate = 'sudo /usr/local/bin/svncreate'
+svncreate = './svncreate'
import sys
import os
# Para que tire errores más verborrágicos.
cgitb.enable()
-def is_in(elem, lst):
- for e in lst:
- if elem == e:
- return True
- return False
-
class FormError(Exception):
def __init__(self, value):
self.value = value
"""
def print_form(form):
- def selected(user):
- if is_in(user, form.getlist('users')):
- return ' selected'
- return ''
-
repos = ''
if form.getfirst('repos'):
repos = form.getfirst('repos')
- desc = ''
- if form.getfirst('desc'):
- desc = form.getfirst('desc')
print """\
+ <p>
<form method="POST">
- Nombre del repositorio: <input type="text" name="repos" value="%s"><br>
- Descripción: <input type="text" name="desc" value="%s"><br>
- Usuarios habilitados a escribir:
- <select name="users" multiple>""" % (repos, desc)
- for user in get_users('/etc/svn/passwd'):
- print """<option%s>%s</option>""" % (selected(user), user)
- print """\
- </select><br>
- <input type="submit" name="enviado" value="Crear"><br>
- </form>"""
+ Nombre del repositorio: <input type="text" name="repos" value="%s">
+ <input type="submit" name="enviado" value="Crear">
+ </form>
+ </p>""" % repos
def print_repos(repos):
url = 'http://portal.mecon.ar/svn/%s/tronco/' % repos
#print 'Alternativamente puede hacer un checkout con: svn co svn+ssh://portal.mecon.ar/var/lib/svn/%s si tiene acceso via ssh.\n' % repos
print '<div style="text-align: center"><a href="./">Volver</a></div>'
-def get_users(file):
- users = []
- f = open(file, 'r')
- lines = f.readlines()
- for line in lines:
- users.append(line.strip().split(':')[0])
- f.close()
- return users
-
def check_form(form):
check_cond(form.has_key('repos'), 'No se especificó el nombre del repositorio.')
- check_cond(form.has_key('desc'), 'No se especificó la descripción del repositorio.')
- check_cond(form.has_key('users'), 'No se especificaron usuarios habilitados para escribir en el repositorio.')
check_cond(re.match('^[\w\d]+$', form['repos'].value),
'El nombre del repositorio no es válido (sólo puede tener caracteres alfanuméricos).')
check_form(form)
print '<pre>'
repos = escape(form.getfirst('repos'))
- desc = escape(form.getfirst('desc'))
- usrs = ' '
- usrs = escape(usrs.join(form.getlist('users')))
- cmd = "%s '%s' '%s' '%s'" % (svncreate, repos, desc, usrs)
+ cmd = "%s '%s'" % (svncreate, repos)
sys.stdout.flush()
status = os.system(cmd)
print '</pre>'