diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-05-15 16:31:30 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-05-15 16:32:22 +0200 |
commit | d10840ab181feba67e04f6bd6e81a10b8c6e0cf4 (patch) | |
tree | 4d1c6bbb7b774af9a8a694bc1e083d3da9fa662e /lib/installer.php | |
parent | d70dfbdebba6070368d1c8999a311dcfc81dec1d (diff) | |
download | nextcloud-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.php | 117 |
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; + } +} |