aboutsummaryrefslogtreecommitdiffstats
path: root/lib/installer.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-05-15 16:31:30 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-05-15 16:32:22 +0200
commitd10840ab181feba67e04f6bd6e81a10b8c6e0cf4 (patch)
tree4d1c6bbb7b774af9a8a694bc1e083d3da9fa662e /lib/installer.php
parentd70dfbdebba6070368d1c8999a311dcfc81dec1d (diff)
downloadnextcloud-server-d10840ab181feba67e04f6bd6e81a10b8c6e0cf4.tar.gz
nextcloud-server-d10840ab181feba67e04f6bd6e81a10b8c6e0cf4.zip
moved app install/remove/update functions to lib/installer.php
added OC_APP::getAppInfo() for reading app metadata
Diffstat (limited to 'lib/installer.php')
-rw-r--r--lib/installer.php117
1 files changed, 117 insertions, 0 deletions
diff --git a/lib/installer.php b/lib/installer.php
new file mode 100644
index 00000000000..c389fe9c0cc
--- /dev/null
+++ b/lib/installer.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Robin Appelman
+ * @copyright 2010 Frank Karlitschek karlitschek@kde.org
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * This class provides the functionality needed to install, update and remove plugins/apps
+ */
+class OC_INSTALLER{
+ /**
+ * @brief Installs an app
+ * @param $data array with all information
+ * @returns integer
+ *
+ * This function installs an app. All information needed are passed in the
+ * associative array $data.
+ * The following keys are required:
+ * - source: string, can be "path" or "http"
+ *
+ * One of the following keys is required:
+ * - path: path to the file containing the app
+ * - href: link to the downloadable file containing the app
+ *
+ * The following keys are optional:
+ * - pretend: boolean, if set true the system won't do anything
+ * - noinstall: boolean, if true appinfo/install.php won't be loaded
+ * - inactive: boolean, if set true the appconfig/app.sample.php won't be
+ * renamed
+ *
+ * This function works as follows
+ * -# fetching the file
+ * -# unzipping it
+ * -# including appinfo/install.php
+ * -# setting the installed version
+ *
+ * It is the task of oc_app_install to create the tables and do whatever is
+ * needed to get the app working.
+ */
+ public static function installApp( $data = array()){
+ // TODO: write function
+ return true;
+ }
+
+ /**
+ * @brief Update an application
+ * @param $data array with all information
+ * @returns integer
+ *
+ * This function installs an app. All information needed are passed in the
+ * associative array $data.
+ * The following keys are required:
+ * - source: string, can be "path" or "http"
+ *
+ * One of the following keys is required:
+ * - path: path to the file containing the app
+ * - href: link to the downloadable file containing the app
+ *
+ * The following keys are optional:
+ * - pretend: boolean, if set true the system won't do anything
+ * - noupgrade: boolean, if true appinfo/upgrade.php won't be loaded
+ *
+ * This function works as follows
+ * -# fetching the file
+ * -# removing the old files
+ * -# unzipping new file
+ * -# including appinfo/upgrade.php
+ * -# setting the installed version
+ *
+ * upgrade.php can determine the current installed version of the app using "OC_APPCONFIG::getValue($appid,'installed_version')"
+ */
+ public static function upgradeApp( $data = array()){
+ // TODO: write function
+ return true;
+ }
+
+ /**
+ * @brief Removes an app
+ * @param $name name of the application to remove
+ * @param $options array with options
+ * @returns true/false
+ *
+ * This function removes an app. $options is an associative array. The
+ * following keys are optional:ja
+ * - keeppreferences: boolean, if true the user preferences won't be deleted
+ * - keepappconfig: boolean, if true the config will be kept
+ * - keeptables: boolean, if true the database will be kept
+ * - keepfiles: boolean, if true the user files will be kept
+ *
+ * This function works as follows
+ * -# including appinfo/remove.php
+ * -# removing the files
+ *
+ * The function will not delete preferences, tables and the configuration,
+ * this has to be done by the function oc_app_uninstall().
+ */
+ public static function removeApp( $name, $options = array()){
+ // TODO: write function
+ return true;
+ }
+}