bernd
SSH-Key auf plausibilität prüfen
bernd commited 04f386f at 2011-12-21 16:51:54
<?php
require_role(ROLE_SYSTEMUSER);
$data_dir = realpath( dirname(__FILE__).'/../data/' );
$config_file = $data_dir.'/gitolite-admin/conf/webinterface.conf';
$config_dir = $data_dir.'/gitolite-admin/conf/webinterface';
$key_dir = $data_dir.'/gitolite-admin/keydir';
DEBUG("gitolite-data_dir: ".$data_dir);
$git_wrapper = $data_dir . '/git-wrapper.sh';
function check_env()
{
global $git_wrapper, $data_dir, $config_file, $config_dir, $key_dir;
if (!is_executable($git_wrapper)) {
system_failure("git_wrapper.sh is not executable: {$git_wrapper}");
}
if (! (is_file($data_dir.'/sshkey') && is_file($data_dir.'/sshkey.pub'))) {
system_failure("SSH-key not found. Please setup the gitolite-module correctly. Run ./data/initialize.sh");
}
if (! is_dir($data_dir.'/gitolite-admin')) {
system_failure("Repository gitolite-admin ot found. Initial checkout must be made manually. Run ./data/initialize.sh");
}
if (! is_dir($config_dir)) {
system_failure("gitolite-admin repository is not prepared.");
}
if (! (is_dir($key_dir) && is_writeable($config_file))) {
system_failure("Repository gitolite-admin is corrupted or webinterface.conf is not writeable.");
}
}
function validate_name($name) {
return (preg_match('/^[[:alnum:]][[:alnum:]._-]*$/', $name));
}
function get_git_url($repo) {
$remote = git_wrapper('remote --verbose');
DEBUG('gitolite-admin repo: '.$remote[0]);
$url = preg_replace('#^.*\s+(\S+):gitolite-admin.*#', '$1', $remote[0]);
DEBUG('URL: '.$url);
return $url.':'.$repo;
}
function git_wrapper($commandline)
{
global $git_wrapper, $data_dir;
$command = $git_wrapper.' '.$commandline;
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX