aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs
diff options
context:
space:
mode:
Diffstat (limited to 'Zotlabs')
-rw-r--r--Zotlabs/Module/Admin.php20
-rw-r--r--Zotlabs/Storage/GitRepo.php4
2 files changed, 23 insertions, 1 deletions
diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php
index 404585ccd..19b8a2e77 100644
--- a/Zotlabs/Module/Admin.php
+++ b/Zotlabs/Module/Admin.php
@@ -51,6 +51,10 @@ class Admin extends \Zotlabs\Web\Controller {
$this->admin_page_plugins_post('removerepo');
break;
}
+ if (argc() > 2 && argv(2) === 'updaterepo') {
+ $this->admin_page_plugins_post('updaterepo');
+ break;
+ }
if (argc() > 2 &&
is_file("addon/" . argv(2) . "/" . argv(2) . ".php")){
@include_once("addon/" . argv(2) . "/" . argv(2) . ".php");
@@ -1714,6 +1718,22 @@ class Admin extends \Zotlabs\Web\Controller {
function admin_page_plugins_post($action) {
switch($action) {
+ case 'updaterepo':
+ if(array_key_exists('repoName', $_REQUEST)) {
+ $repoName = $_REQUEST['repoName'];
+ } else {
+ json_return_and_die(array('message' => 'No repo name provided.', 'success' => false));
+ }
+ $repoDir = __DIR__ . '/../../store/git/sys/extend/addon/'.$repoName;
+ if(!is_dir($repoDir)) {
+ json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
+ }
+ $git = new GitRepo('sys', null, false, $repoName, $repoDir);
+ if($git->pull()) {
+ json_return_and_die(array('message' => 'Repo updated.', 'success' => true));
+ } else {
+ json_return_and_die(array('message' => 'Error updating addon repo.', 'success' => false));
+ }
case 'removerepo':
if(array_key_exists('repoName', $_REQUEST)) {
$repoName = $_REQUEST['repoName'];
diff --git a/Zotlabs/Storage/GitRepo.php b/Zotlabs/Storage/GitRepo.php
index 81356950b..ac53aefc4 100644
--- a/Zotlabs/Storage/GitRepo.php
+++ b/Zotlabs/Storage/GitRepo.php
@@ -82,7 +82,9 @@ class GitRepo {
}
}
}
-
+ public function pull() {
+ return $this->git->pull();
+ }
/**
* delete repository from disk
*/