注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

前端开发那点事儿

冒犯之处,敬请谅解。

 
 
 

日志

 
 
 
 

自动打包。。。  

2012-04-16 10:34:22|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/inc/php/global.php');
global $db;
if(!isset($_SESSION['uid'])){
?>
<script type='text/javascript'>
alert("您尚未登录。。。");
location = '/';
</script>
<?php
die;
}
if(!isset($_POST)){
?>
<script type='text/javascript'>
alert("参数不正确,无法进入该页面。。。");
location = '/';
</script>
<?php
die;
}
$svnaddr = trim($_POST['svnaddr']);
//$svnaddr = 'https://192.168.1.52:8899/svn/edinner/branches/group/src';
if(strlen($svnaddr) < 5){
echo 'no该客户SVN地址分配不正确,请联系管理员。';
die();
}
$packBranch = $_POST['branch'] != 'null' ? "'".$_POST['branch']."'" : "''";
$packLangs = explode(',',$_POST['langs']);
$packLangsValue = explode(',',$_POST['langsValue']);
$packModule = explode(',',$_POST['module']);
$langsArr = array();
for($i = 0;$i < count($packLangs);$i++){
$langsArr[] = "'".$packLangs[$i]."'=>'".$packLangsValue[$i]."'";
}
$langsStr = 'array('.implode(',',$langsArr).')';
foreach($packModule as &$module){
$module = "'".$module."'";
}
$moduleStr = 'array('.implode(',',$packModule).')';
set_time_limit(0);
//删除上次打包失败残留的临时文件
exec('rd /s/q d:\\apptmp');
exec('rd /s/q d:\\app');
$lastLine = exec('svn export '.$svnaddr.' d:/apptmp');
$pattern = '(\d+)';
$matchCnt = preg_match_all($pattern,$lastLine, $matches,PREG_PATTERN_ORDER);
if($matchCnt){
$versionNo = $matches[0][$matchCnt-1];
}
//override server.php
if(!is_numeric($versionNo)){
echo 'no-无法获取SVN版本号,请联系管理员。';
die();
}
$expireInfo = '';
if(isset($_POST['deadline'])){
$expireInfo = "if(strtotime('".$_POST['deadline']."') < time()) die('软件已过期,请与软件提供商联系,谢谢!');";
}
//$path = "d:\server.php";
$path = "d:\apptmp\inc\php\server.php";
function wfile($file,$str,$mode='w'){
$oldmask = @umask(0);
$fp = @fopen($file,$mode);
@flock($fp, 3);
if(!$fp){
return false;
}else{
@fwrite($fp,$str);
@fclose($fp);
@umask($oldmask);
return true;
}
}
$server = <<<EOT
<?php
define('MYSQLSERVER','localhost');
define('MYSQLUSER','root');
define('MYSQLPWD','a12345');
define('MYSQLDATABASE','edinner');
define('MYSQLDSN','mysql://' . MYSQLUSER . ':' . MYSQLPWD . '@' . MYSQLSERVER. '/' . MYSQLDATABASE);
define('DATABASEDSN',MYSQLDSN);
define('XAMPP','d:/xampp');
define('DEBUG',false);
$expireInfo
define('P_VERSION',$versionNo);//定义程序的版本
define('BRANCH',$packBranch);
\$C_Langs = $langsStr;
\$MODULE= $moduleStr;
foreach(\$MODULE as \$mod){
define(\$mod,true);
}
?>
EOT;
if(unlink("d:/apptmp/inc/php/server.php") && wfile($path,$server)){
//if(wfile($path,$server)){
$tmpName = $_POST['name'].'_'.$versionNo;
$fileName = mb_convert_encoding($tmpName, "GBK", "UTF-8");
$cmdLines = array(
'd:\\zend\\bin\\zendenc5 --recursive --no-header d:\\apptmp d:\\app'
,'del d:\\'.$fileName.'.exe'
,'d:\\winrar\\rar a d:\\'.$fileName.'.rar d:\\app'
,'d:\\winrar\\rar s d:\\'.$fileName.'.rar'
,'d:\\winrar\\rar c -zd:\\winrar\\acewill.txt d:\\'.$fileName.'.exe'
,'rd /s/q d:\\apptmp'
,'rd /s/q d:\\app'
,'del /q d:\\'.$fileName.'.rar'
);
foreach($cmdLines as $cmd){
exec($cmd);
}
$data = array(
'packer' => $_SESSION['uid']
,'packcuid' => $_POST['cuid']
,'packreason' => $_POST['packreason']
);
$updata = array(
'svnno' => $versionNo
);
$db->autoCommit(false);
$db->autoExecute('sys_packlog',$data,DB_AUTOQUERY_INSERT);
$db->autoExecute('crm_customer',$updata,DB_AUTOQUERY_UPDATE,'cuid='.$_POST['cuid']);
$db->commit();
echo 'yes-打包成功,文件名为:'.$tmpName.'.exe';
}else{
echo 'no-server.php文件生成错误';
}
?>
  评论这张
 
阅读(1231)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018