]> git.llucax.com Git - mecon/scripts.git/blob - subversion/sapo/sapo.php
Primera version de archivos de soporte de subversion.
[mecon/scripts.git] / subversion / sapo / sapo.php
1 <!-- vim:set ts=4 softtabstop=4 expandtab: -->
2 <html>
3     <head>
4         <title>Creador de Repositorios Subversion</title>
5     </head>
6     <body>
7         <h1>Creador de Repositorios Subversion</h1>
8 <? // vim:set ts=4 softtabstop=4 expandtab:
9
10 // $Id$
11
12 // Configuración
13 $svncreate = 'sudo /usr/local/bin/svncreate';
14
15 ini_set('implicit_flush', true);
16
17 $users = array();
18 $f = fopen('/etc/svn/passwd', 'r');
19 while (($s = fgets($f, 4096)) !== false) {
20     list($users[], $pass) = split(':', $s);
21 }
22 fclose($f);
23
24 if (@$_REQUEST['enviado']) {
25
26     if (!$_REQUEST['repos']) {
27         die('No se especificó el nombre del repositorio.');
28     }
29     if (!$_REQUEST['desc']) {
30         die('No se especificó la descripción del repositorio.');
31     }
32     if (!$_REQUEST['users']) {
33         die('No se especificaron usuarios habilitados para escribir en el repositorio.');
34     }
35     if (!preg_match('/^[\w\d]+$/', $_REQUEST['repos'])) {
36         die('El nombre del repositorio no es válido (sólo puede tener caracteres alfanuméricos).');
37     }
38     // Chequear usuarios que existan.
39     //if (!$_REQUEST['users']) {
40     //    error('No se especificaron usuarios habilitados para escribir en el repositorio.');
41     //}
42
43     echo '<PRE>';
44     $retval = 0;
45     echo system(
46     //echo(
47         sprintf(
48             "%s %s %s %s",
49             $svncreate,
50             escapeshellarg($_REQUEST['repos']),
51             escapeshellarg($_REQUEST['desc']),
52             escapeshellarg(join(' ', $_REQUEST['users']))
53         ),
54         $retval
55     );
56     if ($retval) {
57         echo "Hubo un error: $retval";
58     }
59     echo "\n";
60     $url = sprintf('http://portal.mecon.ar/svn/%s/tronco/', $_REQUEST['repos']);
61     printf('Puede hacer un checkout con: svn co <A href="%s">%s</A> %s.%s', $url, $url, $_REQUEST['repos'], "\n");
62     printf("Alternativamente puede hacer un checkout con: svn co svn+ssh://portal.mecon.ar/var/lib/svn/%s si tiene acceso via ssh.\n", $_REQUEST['repos']);
63     printf('<A href="%s">Volver</A>', $_SERVER['PHP_SELF']);
64     echo '</PRE>';
65
66 } else {
67
68 ?>
69         <form>
70             Nombre del repositorio: <input type="text" name="repos" value="<?= @$_REQUEST['repos'] ?>"><br>
71             Descripción:            <input type="text" name="desc" value="<?= @$_REQUEST['desc'] ?>"><br>
72             Usuarios habilitados a escribir:
73             <select name="users[]" multiple>
74             <? foreach ($users as $user) { ?>
75                 <option><?= $user ?></option>
76             <? } ?>
77             </select><br>
78             <input type="submit" name="enviado" value="Crear"><br>
79         </form>
80 <? } ?>
81     </body>
82 </html>