Almost finished windows....

This commit is contained in:
Ad5001 2016-09-24 12:54:09 +03:00
parent 298df3fca3
commit 0388b1afcd
2 changed files with 36 additions and 17 deletions

View file

@ -39,15 +39,34 @@ class Main extends PluginBase implements Listener {
public function onEnable() { public function onEnable() {
@mkdir($this->getDataFolder());
@mkdir($this->getDataFolder() . "bin");
$this->getServer()->getPluginManager()->registerEvents($this, $this); $this->getServer()->getPluginManager()->registerEvents($this, $this);
$zip = new ZipArchive();
if(Utils::getOS() == "win") { if(Utils::getOS() == "win") {
if(!file_exists($this->getDataFolder() . "bin/git.exe") && $zip->open("../../resources/Windows.zip")) {
$zip->extractTo($this->getDataFolder() . "bin");
$zip->close();
}
$this->git = new Windows($this, $this->getDataFolder()); $this->git = new Windows($this, $this->getDataFolder());
} elseif(Utils::getOS() == "linux") { } elseif(Utils::getOS() == "linux") {
if(!file_exists($this->getDataFolder() . "bin/git.exe") && $zip->open("../../resources/Linux.zip")) {
$zip->extractTo($this->getDataFolder() . "bin");
$zip->close();
}
$this->git = new Linux($this, $this->getDataFolder()); $this->git = new Linux($this, $this->getDataFolder());
} elseif(Utils::getOS() == "mac") { } elseif(Utils::getOS() == "mac") {
if(!file_exists($this->getDataFolder() . "bin/git.exe") && $zip->open("../../resources/Mac.zip")) {
$zip->extractTo($this->getDataFolder() . "bin");
$zip->close();
}
$this->git = new Mac($this, $this->getDataFolder()); $this->git = new Mac($this, $this->getDataFolder());
} else {
$this->getLogger()->critical("Unsuported device ! Please refer to the download page to see the list of available devices.");
$this->setEnable(false);
} }
} }

View file

@ -27,44 +27,44 @@ class Windows extends GitClient {
public function commit(string $message) : string { public function commit(string $message) : string {
$handle = popen("git commit -m \"$message\"", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe commit -m \"$message\"", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function push(string $to ="github", string $from = "master") : string { public function push(string $to ="github", string $from = "master") : string {
$handle = popen("git push $to $from", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe push $to $from", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function checkout($branch = null) : string { public function checkout($branch = null) : string {
$handle = popen("git checkout " . (!is_null($branch) ? $this->getBranch() : $branch), 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe checkout " . (!is_null($branch) ? $this->getBranch() : $branch), 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function getBranch() : string { public function getBranch() : string {
$handle = popen('git branch', 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe branch", 'r');
$read = fread($handle, 2096); $read = fread($handle, 2096);
return explode(" ", $read)[1]; return explode(" ", $read)[1];
} }
public function branch($branch = '') : string { public function branch($branch = '') : string {
$handle = popen("git branch " . $branch, 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe branch " . $branch, 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function start() : string { public function start() : string {
$handle = popen("git init", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe init", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function init() : string { public function init() : string {
$handle = popen("git init", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe init", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
@ -85,55 +85,55 @@ class Windows extends GitClient {
public function clone($from) : string { public function clone($from) : string {
$handle = popen("git clone $from", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe clone $from", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function log() : string { public function log() : string {
$handle = popen("git log", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe log", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function remove($path) : string { public function remove($path) : string {
$handle = popen("git rm $path", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe rm $path", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function move($path, $newpath) : string { public function move($path, $newpath) : string {
$handle = popen("git mv $path $newpath", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe mv $path $newpath", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function add($path) : string { public function add($path) : string {
$handle = popen("git add $path", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe add $path", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function diff() : string { public function diff() : string {
$handle = popen("git diff $path", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe diff $path", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function status() : string { public function status() : string {
$handle = popen("git status -s", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe status -s", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function remote($name, $url) : string { public function remote($name, $url) : string {
$handle = popen("git remote $name $url", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe remote $name $url", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }
public function pull($to = "github", $from = "master") : string { public function pull($to = "github", $from = "master") : string {
$handle = popen("git pull $to $from", 'r'); $handle = popen($this->getDataFolder() . "bin/git.exe pull $to $from", 'r');
return fread($handle, 2096); return fread($handle, 2096);
} }