Skip to content

Instantly share code, notes, and snippets.

@Ritesh-patel
Forked from rahul286/hook-debug.php
Created March 3, 2015 12:48
Show Gist options
  • Save Ritesh-patel/57f226ecc9f116cb9e52 to your computer and use it in GitHub Desktop.
Save Ritesh-patel/57f226ecc9f116cb9e52 to your computer and use it in GitHub Desktop.

Usage

You can user any of above. All are same.

Just make sure you edit $repos.

<?php
$repos  = array(
    'bad-plugin' => array (
                'branch' => 'master',
                'localpath' => '/var/www/wcmum.rtcamp.net/htdocs/wp-content/plugins/bad-plugin'
                ),
    'other-plugin' => array (
                'branch' => 'master',
                'localpath' => '/var/www/wcmum.rtcamp.net/htdocs/wp-content/plugins/other-plugin'
                )

  );
?>
<?php
// array - repo names and local filesystem path and branch
$repos = array(
'bad-plugin' => array (
'branch' => 'master',
'localpath' => '/var/www/example.com/htdocs/wp-content/plugins/bad-plugin'
)
);
rt_write_log("Hello at " . date("D M j G:i:s T Y") );
rt_write_log("Raw Input Dump (HTTP POST)");
rt_write_log(file_get_contents("php://input"));
$payload = json_decode(file_get_contents("php://input"));
if (!$payload) {
rt_write_log( "NULL paylod. EXIT ") ;
exit();
}
rt_write_log("Dump payload");
rt_write_log($payload);
rt_write_log("Dump Repos Array");
rt_write_log($repos);
rt_write_log("Dump macthing keys from array based on payload");
rt_write_log($repos[$payload->repository->name]);
rt_write_log($repos[$payload->repository->name]['branch']);
rt_write_log($repos[$payload->repository->name]['localpath']);
$remote_branch = end(explode('/',$payload->ref));
rt_write_log("Extract remote branch");
rt_write_log($remote_branch);
if( !isset($repos[$payload->repository->name]['branch'])
|| $repos[$payload->repository->name]['branch'] == $remote_branch ){
rt_write_log("Inside if-else block");
$command = 'cd ' . $repos[$payload->repository->name]['localpath'] . '/ && git reset --hard HEAD && git pull' ;
rt_write_log($command);
$res = shell_exec($command);
rt_write_log($res);
rt_write_log("FINISHED ". date("D M j G:i:s T Y") );
}
function rt_write_log($str){
if(is_string($str)){
file_put_contents("hook.log", "\n\n" . $str ."\n\n" , FILE_APPEND );
}elseif(is_array($str)){
rt_write_log ( var_export($str, true) ) ;
}elseif(is_object($str)){
rt_write_log ( var_export((array)$str, true) ) ;
}else{
rt_write_log("ERROR: Paramter is not string or array. Instead it's " . gettype($str) );
}
}
?>
<?php
// array - repo names and local filesystem path and branch
$repos = array(
'bad-plugin' => array (
'branch' => 'master',
'localpath' => '/var/www/wcmum.rtcamp.net/htdocs/wp-content/plugins/bad-plugin'
),
'other-plugin' => array (
'branch' => 'master',
'localpath' => '/var/www/wcmum.rtcamp.net/htdocs/wp-content/plugins/other-plugin'
)
);
$payload = json_decode(file_get_contents("php://input"));
if (!$payload) exit();
}
$remote_branch = end(explode('/',$payload->ref));
if( !isset($repos[$payload->repository->name]['branch'])
|| $repos[$payload->repository->name]['branch'] == $remote_branch ){
$command = 'cd ' . $repos[$payload->repository->name]['localpath'] . '/ && git reset --hard HEAD && git pull' ;
$res = shell_exec($command);
}
?>
<?php
// array - repo names and local filesystem path and branch
$repos = array(
'bad-plugin' => array (
'branch' => 'master',
'localpath' => '/var/www/wcmum.rtcamp.net/htdocs/wp-content/plugins/bad-plugin'
)
);
$payload = json_decode(file_get_contents("php://input"));
if (!$payload) exit();
}
$remote_branch = end(explode('/',$payload->ref));
if( !isset($repos[$payload->repository->name]['branch'])
|| $repos[$payload->repository->name]['branch'] == $remote_branch ){
$command = 'cd ' . $repos[$payload->repository->name]['localpath'] . '/ && git reset --hard HEAD && git pull' ;
$res = shell_exec($command);
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment