diff options
Diffstat (limited to 'Zotlabs')
-rw-r--r-- | Zotlabs/Module/Admin.php | 20 | ||||
-rw-r--r-- | Zotlabs/Storage/GitRepo.php | 4 |
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 */ |