4 Star 5 Fork 0

Gitee 极速下载/Walden

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/meolu/walden
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Command.php 2.92 KB
一键复制 编辑 原始数据 按行查看 历史
wushuiyong 提交于 2015-11-11 17:56 . [] => array()
<?php
/* *****************************************************************
* @Author: wushuiyong
* @Created Time : 三 10/ 7 19:43:39 2015
*
* @File Name: Command.php
* @Description:
* *****************************************************************/
class Command {
private $_log;
public static function log($msg) {
// file_put_contents('/tmp/cmd', var_export($msg, true) . PHP_EOL, 8);
}
public function getExeLog() {
return $this->_log;
}
public function execute($command) {
self::log('---------------------------------');
self::log('---- Executing: $ ' . $command);
$return = 1;
$log = '';
exec($command . ' 2>&1', $log, $return);
$this->_log = implode(PHP_EOL, $log) ?: array();
self::log($this->_log);
self::log('---------------------------------');
return !$return;
}
/**
* 推送更新
*
* @return bool
*/
public function gitPush() {
$markdownDir = sprintf("%s/markdown", WEB_ROOT);
// 存在git目录,直接push
if (!file_exists($markdownDir) || !file_exists($markdownDir . '/.git')) return false;
if (!file_exists($markdownDir) || !file_exists($markdownDir . '/.git')) {
throw new \Exception('初始化git目录失败:' . $this->getExeLog());
}
$cmd[] = sprintf('cd %s ', $markdownDir);
$cmd[] = sprintf('/usr/bin/env git add .');
$cmd[] = sprintf('/usr/bin/env git commit -m"%s"', date("Y-m-d H:i:s", time()));
$cmd[] = sprintf('/usr/bin/env git push origin master');
$command = join(' && ', $cmd);
return $this->execute($command);
}
/**
* 初始化git项目
*
* @param $gitRepo
* @return bool
*/
public function initGit($gitRepo) {
$markdownDir = sprintf("%s/markdown", WEB_ROOT);
if (file_exists($markdownDir) && file_exists(rtrim($markdownDir, '/') . '/.git')) return true;
if (file_exists($markdownDir)) {
$cmd[] = sprintf('cd %s', $markdownDir);
$cmd[] = sprintf('/usr/bin/env git init');
$cmd[] = sprintf('mkdir -p %s/upload', $markdownDir);
$cmd[] = sprintf('/usr/bin/env git remote add origin %s', $gitRepo);
} else {
$cmd[] = sprintf('mkdir %s', $markdownDir);
$cmd[] = sprintf('cd %s', $markdownDir);
$cmd[] = sprintf('/usr/bin/env git clone %s .', $gitRepo);
$cmd[] = sprintf('mkdir -p %s/upload', $markdownDir);
}
$command = join(' && ', $cmd);
return $this->execute($command);
}
/**
* 清除初始化时的目录
*
* @return bool
*/
public function cleanInitDir() {
$markdownDir = sprintf("%s/markdown", WEB_ROOT);
if (!file_exists($markdownDir)) return true;
$command = sprintf('rm -rf %s', $markdownDir);
return $this->execute($command);
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/mirrors/Walden.git
[email protected]:mirrors/Walden.git
mirrors
Walden
Walden
master

搜索帮助