<?php
/**
* This function handles the pull / init / clone of a git repo
*
* @param $git_url
* Example of git clone url git://github.com/someuser/somerepo.git
*
* @return bool true
*/
public static function pullOrCloneRepo($git_url) {
if (!isset($git_url)) {
return false;
}
// validate contains git://github.com/
if (strpos($git_url, 'git://github.com/') !== FALSE) {
// create a directory and change permissions
$uri = 'public://somedir'; // change this if not in drupal
//check the dir
$file_path = drupal_realpath($uri); // change this if not in drupal
if (isset($file_path)) {
$first_dir = getcwd();
// change dir to the new path
$new_dir = chdir($file_path);
// Git init
$git_init = shell_exec('git init');
// Git clone
$git_clone = shell_exec('git clone '. $git_url);
// Git pull
$git_pull = shell_exec('git pull');
// change dir back
$change_dir_back = chdir($first_dir);
return true;
}
}
else {
return false;
}
}
?>