コード例 #1
0
ファイル: Cron.php プロジェクト: burbuja/indefero
 /**
  * Mark export of git repositories for the daemon.
  */
 public static function markExport()
 {
     foreach (Pluf::factory('IDF_Project')->getList() as $project) {
         $rep = sprintf(Pluf::f('git_repositories'), $project->shortname);
         $serve = new IDF_Plugin_SyncGit_Serve();
         $serve->setGitExport($project->shortname, $rep);
     }
 }
コード例 #2
0
ファイル: Serve.php プロジェクト: burbuja/indefero
 /**
  * Main function called by the serve script.
  */
 public static function main($argv, $env)
 {
     if (count($argv) != 2) {
         self::fatalError('Missing argument USER.');
     }
     $username = $argv[1];
     umask(022);
     if (!isset($env['SSH_ORIGINAL_COMMAND'])) {
         self::fatalError('Need SSH_ORIGINAL_COMMAND in environment.');
     }
     $cmd = $env['SSH_ORIGINAL_COMMAND'];
     chdir(Pluf::f('idf_plugin_syncgit_git_home_dir', '/home/git'));
     $serve = new IDF_Plugin_SyncGit_Serve();
     try {
         $new_cmd = $serve->serve($username, $cmd);
     } catch (Exception $e) {
         self::fatalError($e->getMessage());
     }
     print $new_cmd;
     exit(0);
 }
コード例 #3
0
ファイル: gitserve.php プロジェクト: burbuja/indefero
# ***** BEGIN LICENSE BLOCK *****
# This file is part of InDefero, an open source project management application.
# Copyright (C) 2008 Céondo Ltd and contributors.
#
# InDefero is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# InDefero is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
# ***** END LICENSE BLOCK ***** */
/**
 * This script is used to control the access to the git repositories
 * using a restricted shell access.
 *
 * The only argument must be the login of the user.
 */
require dirname(__FILE__) . '/../src/IDF/conf/path.php';
require 'Pluf.php';
Pluf::start(dirname(__FILE__) . '/../src/IDF/conf/idf.php');
Pluf_Dispatcher::loadControllers(Pluf::f('idf_views'));
IDF_Plugin_SyncGit_Serve::main($argv, array_merge($_SERVER, $_ENV));
コード例 #4
0
ファイル: Serve.php プロジェクト: Br3nda/indefero
 /**
  * Main function called by the serve script.
  */
 public static function main($argv, $env)
 {
     if (count($argv) != 2) {
         self::fatalError('Missing argument USER.');
     }
     $username = $argv[1];
     umask(022);
     if (!isset($env['SSH_ORIGINAL_COMMAND'])) {
         self::fatalError('Need SSH_ORIGINAL_COMMAND in environment.');
     }
     $cmd = $env['SSH_ORIGINAL_COMMAND'];
     $home = Pluf::f('idf_plugin_syncgit_git_home_dir', '/home/git');
     if (!is_dir($home) || is_link($home)) {
         throw new Pluf_Exception_Setting_error(sprintf('%s does not exist! Did you set up your git user? ' . 'Set "idf_plugin_syncgit_git_home_dir". to git\'s $HOME.', $home));
     }
     chdir($home);
     $serve = new IDF_Plugin_SyncGit_Serve();
     try {
         $new_cmd = $serve->serve($username, $cmd);
     } catch (Exception $e) {
         self::fatalError($e->getMessage());
     }
     print $new_cmd;
     exit(0);
 }