[add] first
This commit is contained in:
commit
b5b085ad3f
19
.vscode/launch.json
vendored
Normal file
19
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Listen for Xdebug",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"port": 9010
|
||||
},
|
||||
{
|
||||
"name": "Launch currently open script",
|
||||
"type": "php",
|
||||
"request": "launch",
|
||||
"program": "${file}",
|
||||
"cwd": "${fileDirname}",
|
||||
"port": 9010
|
||||
}
|
||||
]
|
||||
}
|
58
index.php
Normal file
58
index.php
Normal file
@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>更新打包機Slot資源</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>更新打包機Slot資源</h1>
|
||||
<form action="." method="post">
|
||||
SlotID: <input type="test" name="SlotID" value="<?php echo $_POST["SlotID"] ?? ""; ?>">
|
||||
<input type="hidden" name="action" value="SlotUpdate">
|
||||
<input type="submit" name="action" value="更新">
|
||||
<input type="submit" name="action" value="顯示Log">
|
||||
</form>
|
||||
<p>PS: <b>更新</b>一次會強制刷新正在使用的碰友們的網頁🥳</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<?php
|
||||
if (!$_POST) {
|
||||
return;
|
||||
}
|
||||
$result = "";
|
||||
$print = "";
|
||||
if ($_POST["action"] === "更新") {
|
||||
$SlotID = $_POST["SlotID"] ?? "";
|
||||
if(!$SlotID) {
|
||||
echo "請輸入SlotID";
|
||||
return;
|
||||
}
|
||||
//將上面的class檔include進來
|
||||
include_once("ssh2.php");
|
||||
//初始化class
|
||||
$shell = new ssh2("192.168.5.45");
|
||||
$shell->authPassword("catantech","catan9595");
|
||||
//執行指令
|
||||
$result .= "<br>" . $shell->cmdExec(". ~/Desktop/Casino-Core-Type2/gamegitpull.sh " . $SlotID);
|
||||
$result .= "<br>" . $shell->cmdExec('cd ~/Desktop/Casino-Core-Type2/assets/Game/Game_' . $SlotID . '/;git log -3 --pretty=format:"%h - %an, %s : %ad" --date=format:"%Y-%m-%d %H:%M:%S"');
|
||||
$print = str_replace("\n", '<br>', $result);
|
||||
} else if ($_POST["action"] === "顯示Log") {
|
||||
$SlotID = $_POST["SlotID"] ?? "";
|
||||
if(!$SlotID) {
|
||||
echo "請輸入SlotID";
|
||||
return;
|
||||
}
|
||||
//將上面的class檔include進來
|
||||
include_once("ssh2.php");
|
||||
//初始化class
|
||||
$shell = new ssh2("192.168.5.45");
|
||||
$shell->authPassword("catantech","catan9595");
|
||||
//執行指令
|
||||
$result .= "<br>" . $shell->cmdExec('cd ~/Desktop/Casino-Core-Type2/assets/Game/Game_' . $SlotID . '/;git log -3 --pretty=format:"%h - %an, %s : %ad" --date=format:"%Y-%m-%d %H:%M:%S"');
|
||||
$print = str_replace("\n", '<br>', $result);
|
||||
}
|
||||
//印出指令執行結果
|
||||
echo $print;
|
||||
?>
|
90
ssh2.php
Normal file
90
ssh2.php
Normal file
@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
// ssh protocols
|
||||
// note: once openShell method is used, cmdExec does not work
|
||||
|
||||
class ssh2 {
|
||||
|
||||
private $host = '192.168.5.108';
|
||||
private $user = 'Publisher';
|
||||
private $port = '22';
|
||||
private $password = 'Publisher';
|
||||
private $con = null;
|
||||
private $shell_type = 'xterm';
|
||||
private $shell = null;
|
||||
private $log = '';
|
||||
|
||||
function __construct($host='', $port='' ) {
|
||||
|
||||
if( $host!='' ) $this->host = $host;
|
||||
if( $port!='' ) $this->port = $port;
|
||||
|
||||
$this->con = ssh2_connect($this->host, $this->port);
|
||||
if( !$this->con ) {
|
||||
$this->log .= "Connection failed !";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function authPassword( $user = '', $password = '' ) {
|
||||
|
||||
if( $user!='' ) $this->user = $user;
|
||||
if( $password!='' ) $this->password = $password;
|
||||
|
||||
if( !ssh2_auth_password( $this->con, $this->user, $this->password ) ) {
|
||||
$this->log .= "Authorization failed !";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function openShell( $shell_type = '' ) {
|
||||
|
||||
if ( $shell_type != '' ) $this->shell_type = $shell_type;
|
||||
$this->shell = ssh2_shell( $this->con, $this->shell_type );
|
||||
if( !$this->shell ) $this->log .= " Shell connection failed !";
|
||||
stream_set_blocking( $this->shell, true );
|
||||
|
||||
}
|
||||
|
||||
function writeShell( $command = '' ) {
|
||||
|
||||
fwrite($this->shell, $command."\n");
|
||||
|
||||
}
|
||||
|
||||
function cmdExec( ) {
|
||||
|
||||
$argc = func_num_args();
|
||||
$argv = func_get_args();
|
||||
|
||||
$cmd = '';
|
||||
for( $i=0; $i<$argc ; $i++) {
|
||||
if( $i != ($argc-1) ) {
|
||||
$cmd .= $argv[$i]." && ";
|
||||
}else{
|
||||
$cmd .= $argv[$i];
|
||||
}
|
||||
}
|
||||
// echo $cmd;
|
||||
|
||||
$stream = ssh2_exec( $this->con, $cmd );
|
||||
stream_set_blocking( $stream, true );
|
||||
return stream_get_contents($stream);
|
||||
|
||||
}
|
||||
|
||||
function getLog() {
|
||||
return $this->log;
|
||||
|
||||
}
|
||||
|
||||
function getResult(){
|
||||
$contents='';
|
||||
while (!feof($this->shell)) {
|
||||
$contents.=fgets($this->shell);
|
||||
}
|
||||
return $contents;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user