prod-releaser.php/build/api/module/release.php

65 lines
1.6 KiB
PHP
Raw Normal View History

2016-11-07 07:15:16 +00:00
<?php
namespace api\core;
use \manager\ManagerError;
class release{
/* PULLS A BRANCH FROM GIT
*
* @project<String> Project's name
* @branch<String> Git branch
*
*/
public static function pull($args){
extract($args);
/* [1] Load projects' configuration
=========================================================*/
/* (1) Fetch file */
$fc = file_get_contents(__CONFIG__.'/projects.json');
if( !$fc )
return ['ModuleError'=>ManagerError::UnreachableResource];
/* (2) Checks json format */
$js = json_decode( $fc, true );
if( !$js )
return ['ModuleError'=>ManagerError::ParsingFailed];
/* [2] Checks @project argument and files
=========================================================*/
/* (1) Checks @project */
if( !isset($js[$project]) )
return ['ModuleError'=>ManagerError::UnreachableResource];
/* (2) Checks @project's folder */
if( !is_dir($js[$project]['git']) )
2016-11-07 07:15:16 +00:00
return ['ModuleError'=>ManagerError::UnreachableResource];
/* (3) Checks @git directory */
if( !is_dir($js[$project]['git'].'/.git') )
2016-11-07 07:15:16 +00:00
return ['ModuleError'=>ManagerError::UnreachableResource];
/* [3] Launch script
=========================================================*/
/* (1) Launch command + test */
2016-11-08 08:26:00 +00:00
$cmd = 'cd '.$js[$project]['git'].'; git pull origin '.$branch.';';
$stdout = shell_exec($cmd);
2016-11-07 17:17:06 +00:00
/* (2) If error, raise error */
if( is_null($stdout) )
2016-11-08 08:26:00 +00:00
return ['ModuleError'=>ManagerError::PermissionError, 'command'=>$cmd];
2016-11-07 17:17:06 +00:00
/* [4] Return success error
=========================================================*/
return [];
2016-11-07 07:15:16 +00:00
}
}