<?php/*** Class Main* @author Xiaobe* @time 2017*//*** @param str $msg*/function writeLog($msg){date_default_timezone_set("Asia/Shanghai");file_put_contents('log.txt',"\r\n".date("h:i:sa").': '.$msg,FILE_APPEND|LOCK_EX);}/*** @see http://php.net/manual/en/function.proc-open.php*/$descriptorspec = array(0 => array("pipe","r"), // stdin is a pipe that the child will read from1 => array("pipe","w"), // stdout is a pipe that the child will write to2 => array("file",__DIR__ . "/error-output.txt","a") // stderr is a file to write to);$post=file_get_contents('php://input');$postData = json_decode($post,true);if($postData['password'] !== 'xiaobebe'){writeLog('un-authorization request:'.$_SERVER['HTTP_HOST']);die;}// http(s)方式如何自动记住密码// git config --global credential.helper store$username = 'xiaobe';$password = 'xxxxxxx';$cwd = '/var/www/GIT/line2'; //The initial working dir for the command. This must be an absolute directory path$projectSuffix = 'xiaobe/line.git';$branch = 'master';$updateUrl = 'https://'.$username.':'.$password.'@git.oschina.net/'.$projectSuffix;// change authority$processes[0] = proc_open('touch log.txt',$descriptorspec,$pipes,__DIR__,NULL);$processes[1] = proc_open('chmod 777 log.txt',$descriptorspec,$pipes,__DIR__,NULL);$processes[3] = proc_open('touch error-output.txt',$descriptorspec,$pipes,__DIR__,NULL);$processes[4] = proc_open('chmod 777 error-output.txt',$descriptorspec,$pipes,__DIR__,NULL);// update code$re=shell_exec("cd ".$cwd.' && git pull '.$updateUrl.' '.$branch);if($re==null){shell_exec("cd ".$cwd.' && git clone '.$updateUrl.' . && git config core.filemode false');}var_dump($re);// $processes[5] = proc_open('git reset --hard HEAD && git pull '.$updateUrl.' '.$branch,$descriptorspec,$pipes,$cwd,NULL);// can change the file authority created by itself// $processes[6] = proc_open('chmod -R 777 '.$cwd,$descriptorspec,$pipes,$cwd,NULL);$count = count($processes);for($i = 0; $i < $count; $i ++){if(is_resource($processes[$i]))$return_value = proc_close($processes[$i]);if($return_value == 0){writeLog('Command '.$i.' success \r\n');}elsewriteLog('Command '.$i.' faild.');}?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。