aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Installer.php20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/private/Installer.php b/lib/private/Installer.php
index 48bd57f4c10..3ddef99c645 100644
--- a/lib/private/Installer.php
+++ b/lib/private/Installer.php
@@ -399,6 +399,10 @@ class Installer {
$apps = $this->appFetcher->get();
}
+ if ($this->isInstalledFromGit($appId) === true) {
+ return false;
+ }
+
foreach($apps as $app) {
if($app['id'] === $appId) {
$currentVersion = OC_App::getAppVersion($appId);
@@ -415,6 +419,22 @@ class Installer {
}
/**
+ * Check if app has been installed from git
+ * @param string $name name of the application to remove
+ * @return boolean
+ *
+ * The function will check if the path contains a .git folder
+ */
+ private function isInstalledFromGit($appId) {
+ $app = \OC_App::findAppInDirectories($appId);
+ if($app === false) {
+ return false;
+ }
+ $basedir = $app['path'].'/'.$appId;
+ return file_exists($basedir.'/.git/');
+ }
+
+ /**
* Check if app is already downloaded
* @param string $name name of the application to remove
* @return boolean