<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bosunski</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bosunski"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Bosunski"/>
	<updated>2026-08-08T09:24:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=517860</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=517860"/>
		<updated>2018-09-12T10:04:28Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; CLI Update &amp;lt;br /&amp;gt;Documentation&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It is a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; This documentation shows how the CLI Update can be used and how you can extend its functionality as a developer.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Requirements=== &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Terms and definitions=== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Using the CLI Update== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==General Command Usage== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Available commands=== &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Checking for Updates Updates==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;/translate&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:Check updates.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Extension commands==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Listing installed extensions====== &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; This command allows us to list all installed extensions. This command can run in two different ways which are:&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; &#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt; {{-}}[[File:Extension list.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; &#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done:&amp;lt;/translate&amp;gt; {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;{{-}}[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; This will list out only language based extensions, you can specify type as module, plugin and component as well.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Installing an Extension====== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; &#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; &#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt; {{-}}[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This loads the extension and performs the installation as expected.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Removing an extension====== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Updating the Joomla Core==== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; This command updates the Joomla core updating it to the latest version available.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core update.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Installing Joomla! via the CLI==== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Interactive installation===== &amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install interactive.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Non-interactive Installation===== &amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; OR as sample&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; The options defined are loaded and validated after which the installation will run.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Configuration based commands==== &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Setting configurations===== &amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt; The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt; You can even add multiple option-value pairs like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla! sitename=&amp;quot;Joomla Site&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
This will set multiple options at once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting configurations===== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt; The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; This will return all the values for the available options.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting grouped configurations===== &amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt; The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Site down and Site up commands==== &amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt; The second command puts the website in offline mode while the first command brings the website to online mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Contributing to CLI Update as a developer== &amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Adding more commands=== &amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt; The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Calling other commands within command classes=== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; Here, we&#039;re attempting to call the &amp;lt;tt&amp;gt;say:hello&amp;lt;/tt&amp;gt; command created in the Video above.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Some important things to checkout=== &amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*Symfony Style Documentation: [https://symfony.com/doc/current/console/style.html How to Style a Console Command]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=498555</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=498555"/>
		<updated>2018-08-04T21:28:13Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; CLI Update &amp;lt;br /&amp;gt;Documentation&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; This documentation shows how the CLI Update can be used and how you can extend its functionality as a developer.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Requirements=== &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Terms and definitions=== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Using the CLI Update== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==General Command Usage== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Available commands=== &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Checking for Updates Updates==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;/translate&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:Check updates.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Extension commands==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Listing installed extensions====== &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; This command allows us to list all installed extensions. This command can run in two different ways which are:&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; &#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt; {{-}}[[File:Extension list.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; &#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done:&amp;lt;/translate&amp;gt; {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;{{-}}[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; This will list out only language based extensions, you can specify type as module, plugin and component as well.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Installing an Extension====== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; &#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; &#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt; {{-}}[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This loads the extension and performs the installation as expected.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Removing an extension====== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Updating the Joomla Core==== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; This command updates the Joomla core updating it to the latest version available.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core update.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Installing Joomla! via the CLI==== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Interactive installation===== &amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install interactive.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Non-interactive Installation===== &amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; OR as sample&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; The options defined are loaded and validated after which the installation will run.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Configuration based commands====&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Setting configurations===== &amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt; The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt; You can even add multiple option-value pairs like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
This will set multiple options at once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting configurations===== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt; The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; This will return all the values for the available options.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting grouped configurations===== &amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt; The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Site down and Site up commands==== &amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt; The second command puts the website in offline mode while the first command brings the website to online mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Contributing to CLI Update as a developer== &amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Adding more commands=== &amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt; The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Calling other commands within command classes=== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; Here, we&#039;re attempting to call the &amp;lt;tt&amp;gt;say:hello&amp;lt;/tt&amp;gt; command created in the Video above.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Some important things to checkout=== &amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*Symfony Style Documentation: [https://symfony.com/doc/current/console/style.html How to Style a Console Command]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Check_updates.png&amp;diff=498554</id>
		<title>File:Check updates.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Check_updates.png&amp;diff=498554"/>
		<updated>2018-08-04T21:26:52Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=498553</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=498553"/>
		<updated>2018-08-04T21:16:07Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; CLI Update &amp;lt;br /&amp;gt;Documentation&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt; Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt; This documentation shows how the CLI Update can be used and how you can extend its functionality as a developer.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Requirements=== &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Terms and definitions=== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Using the CLI Update== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt; In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==General Command Usage== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt; In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Available commands=== &amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt; There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Checking for Updates Updates==== &amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt; The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;/translate&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt; The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Extension commands==== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt; The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Listing installed extensions====== &amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt; This command allows us to list all installed extensions. This command can run in two different ways which are:&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt; &#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt; {{-}}[[File:Extension list.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt; &#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done:&amp;lt;/translate&amp;gt; {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;{{-}}[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt; This will list out only language based extensions, you can specify type as module, plugin and component as well.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Installing an Extension====== &amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt; Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt; &#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt; &#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;/translate&amp;gt;{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt; {{-}}[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt; This loads the extension and performs the installation as expected.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
======Removing an extension====== &amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt; The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Updating the Joomla Core==== &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt; As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt; This command updates the Joomla core updating it to the latest version available.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core update.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Installing Joomla! via the CLI==== &amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt; The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Interactive installation===== &amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt; To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt; The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install interactive.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Non-interactive Installation===== &amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt; An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt; OR as sample&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; The options defined are loaded and validated after which the installation will run.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Configuration based commands====&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Setting configurations===== &amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt; The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt; You can even add multiple option-value pairs like this:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
This will set multiple options at once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting configurations===== &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt; The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt; This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt; This will return all the values for the available options.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=====Getting grouped configurations===== &amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt; The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt; The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
====Site down and Site up commands==== &amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt; As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;/translate&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt; The second command puts the website in offline mode while the first command brings the website to online mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Contributing to CLI Update as a developer== &amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Adding more commands=== &amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt; The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Calling other commands within command classes=== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt; Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt; Here, we&#039;re attempting to call the &amp;lt;tt&amp;gt;say:hello&amp;lt;/tt&amp;gt; command created in the Video above.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Some important things to checkout=== &amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*Symfony Style Documentation: [https://symfony.com/doc/current/console/style.html How to Style a Console Command]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Core_update.png&amp;diff=498552</id>
		<title>File:Core update.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Core_update.png&amp;diff=498552"/>
		<updated>2018-08-04T21:08:40Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497589</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497589"/>
		<updated>2018-08-01T20:49:07Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
[[File:Core install interactive.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here, we&#039;re attempting to call the &amp;lt;tt&amp;gt;say:hello&amp;lt;/tt&amp;gt; command created in the Video above.&lt;br /&gt;
===Some important things to checkout===&lt;br /&gt;
Symfony Style Documentation here [https://symfony.com/doc/current/console/style.html]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497587</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497587"/>
		<updated>2018-08-01T15:24:05Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
[[File:Core install interactive.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Some important things to checkout===&lt;br /&gt;
Symfony Style Documentation here [https://symfony.com/doc/current/console/style.html]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Core_install_interactive.png&amp;diff=497586</id>
		<title>File:Core install interactive.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Core_install_interactive.png&amp;diff=497586"/>
		<updated>2018-08-01T15:21:27Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497585</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497585"/>
		<updated>2018-08-01T15:01:39Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Some important things to checkout===&lt;br /&gt;
Symfony Style Documentation here [https://symfony.com/doc/current/console/style.html]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497584</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497584"/>
		<updated>2018-08-01T14:54:34Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        if($code === 0) {&lt;br /&gt;
            // command ran successfully, do something&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497583</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497583"/>
		<updated>2018-08-01T14:50:08Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
Should in case a command you want to write for the CLI Update is going to be require that you call an existing command internally, this is how that can be achieved from within another command class:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class RunHelloCommand extends AbstractCommand {&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function execute(): int {&lt;br /&gt;
        $command = $this-&amp;gt;getApplication()-&amp;gt;getCommand(&#039;say:hello&#039;);&lt;br /&gt;
        $code = $command-&amp;gt;execute();&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497468</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497468"/>
		<updated>2018-07-31T21:19:23Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
The CLI Update ships with some commands which are added based on the need seen as of the time. However, the CLI Update allows other commands to be added easily and this is what this section is for. A video tutorial is included below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;video-container&amp;quot;&amp;gt;&lt;br /&gt;
{{#widget:YouTube|id=gcJJtTcPiTg}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497384</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497384"/>
		<updated>2018-07-30T21:39:27Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
[[File:All commands.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:All_commands.png&amp;diff=497383</id>
		<title>File:All commands.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:All_commands.png&amp;diff=497383"/>
		<updated>2018-07-30T21:37:33Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497382</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497382"/>
		<updated>2018-07-30T21:16:56Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
[[File:CheckCheck.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:CheckCheck.png&amp;diff=497381</id>
		<title>File:CheckCheck.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:CheckCheck.png&amp;diff=497381"/>
		<updated>2018-07-30T21:07:01Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497380</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497380"/>
		<updated>2018-07-30T21:01:37Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Core install file.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Core_install_file.png&amp;diff=497379</id>
		<title>File:Core install file.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Core_install_file.png&amp;diff=497379"/>
		<updated>2018-07-30T21:00:10Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497378</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497378"/>
		<updated>2018-07-30T20:53:33Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=language&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension list type.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This will list out only language based extensions, you can specify type as module, plugin and component as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/Users/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install path.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config set single.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
[[File:Config get all.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Config_get_all.png&amp;diff=497377</id>
		<title>File:Config get all.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Config_get_all.png&amp;diff=497377"/>
		<updated>2018-07-30T20:51:56Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Config_set_single.png&amp;diff=497376</id>
		<title>File:Config set single.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Config_set_single.png&amp;diff=497376"/>
		<updated>2018-07-30T20:48:16Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Extension_install_path.png&amp;diff=497375</id>
		<title>File:Extension install path.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Extension_install_path.png&amp;diff=497375"/>
		<updated>2018-07-30T20:43:29Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Extension_list_type.png&amp;diff=497374</id>
		<title>File:Extension list type.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Extension_list_type.png&amp;diff=497374"/>
		<updated>2018-07-30T20:40:45Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Extension_list.png&amp;diff=497373</id>
		<title>File:Extension list.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Extension_list.png&amp;diff=497373"/>
		<updated>2018-07-30T20:34:32Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497221</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497221"/>
		<updated>2018-07-30T07:35:48Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
&lt;br /&gt;
====Extension commands==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*&#039;&#039;General Listing&#039;&#039;: Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
*&#039;&#039;Listing By types&#039;&#039;: General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: {{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla provides installing an extension through an URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*&#039;&#039;Installing from URL&#039;&#039;: To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;{{-}}This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
{{-}}[[File:Extension install url.png|center|800px]]&lt;br /&gt;
*&#039;&#039;Installing from a PATH&#039;&#039;:To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:{{-}}&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected.&lt;br /&gt;
&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla core updating it to the latest version available.&lt;br /&gt;
&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode will run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla will be installed.&lt;br /&gt;
&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode. In this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla installation:&lt;br /&gt;
&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
&lt;br /&gt;
[[File:Config set multiple.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the available options.&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update adds an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provides an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Config get group.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As their name suggests, these commands allow you to quickly put your Joomla powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site up.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Site down.png|center|800px]]&lt;br /&gt;
&lt;br /&gt;
The second command puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Config_set_multiple.png&amp;diff=497219</id>
		<title>File:Config set multiple.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Config_set_multiple.png&amp;diff=497219"/>
		<updated>2018-07-30T07:31:47Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Site_down.png&amp;diff=497218</id>
		<title>File:Site down.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Site_down.png&amp;diff=497218"/>
		<updated>2018-07-30T07:30:22Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Site_up.png&amp;diff=497217</id>
		<title>File:Site up.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Site_up.png&amp;diff=497217"/>
		<updated>2018-07-30T07:29:35Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Config_get_group.png&amp;diff=497216</id>
		<title>File:Config get group.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Config_get_group.png&amp;diff=497216"/>
		<updated>2018-07-30T07:27:12Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497177</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497177"/>
		<updated>2018-07-29T12:50:16Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install url.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;803&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:remove 803&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Extension Remove.png|center|Quick Icon]]&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As thier name suggests, these commands allows you to quickly put your Joomla! powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second one puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497176</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497176"/>
		<updated>2018-07-29T12:47:29Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Extension install url.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As thier name suggests, these commands allows you to quickly put your Joomla! powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second one puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Extension_Remove.png&amp;diff=497175</id>
		<title>File:Extension Remove.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Extension_Remove.png&amp;diff=497175"/>
		<updated>2018-07-29T12:46:55Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Extension_install_url.png&amp;diff=497174</id>
		<title>File:Extension install url.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Extension_install_url.png&amp;diff=497174"/>
		<updated>2018-07-29T12:39:59Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497173</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497173"/>
		<updated>2018-07-29T12:35:43Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;sitename&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As thier name suggests, these commands allows you to quickly put your Joomla! powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second one puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497172</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497172"/>
		<updated>2018-07-29T12:24:44Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get mailer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;mailer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
[[File:011-cli.png|center|Quick Icon]]&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As thier name suggests, these commands allows you to quickly put your Joomla! powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second one puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:011-cli.png&amp;diff=497087</id>
		<title>File:011-cli.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:011-cli.png&amp;diff=497087"/>
		<updated>2018-07-29T11:24:10Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{LGPL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Config_get_single.png&amp;diff=497072</id>
		<title>File:Config get single.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Config_get_single.png&amp;diff=497072"/>
		<updated>2018-07-29T00:23:26Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Licensing ==&lt;br /&gt;
{{GFDL}}&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497071</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497071"/>
		<updated>2018-07-29T00:20:53Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get mailer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;mailer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports group values: mail, db and session.&lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
As thier name suggests, these commands allows you to quickly put your Joomla! powered website into offline or online mode. Here is how to use the commands:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:up&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php site:down&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second one puts the website in offline mode while the first command brings the website to online mode.&lt;br /&gt;
&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497070</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497070"/>
		<updated>2018-07-29T00:05:08Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
The next set of commands we will be looking at is for setting and viewing configuration options inside the Joomla! installation:&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
The CLI Update provides a command to change the value of an option existing in the configuration. Using the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command you can set any configuration option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;. This is how to use command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can even add multiple option-value pairs like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:set mailer=mail fromname=Joomla!&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will set multiple options at once.&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
The next command in this category is the &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command, as the name suggests it gets the value of an option that exists inside the &amp;lt;tt&amp;gt;configuration.php&amp;lt;/tt&amp;gt;, when no argument is supplied to the command, it will display all the options available in a tabulated form. Here is the command:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get mailer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return the value for the option &amp;lt;tt&amp;gt;mailer&amp;lt;tt/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will return all the values for the options available.&lt;br /&gt;
&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
The CLI Update added an option to &amp;lt;tt&amp;gt;config:get&amp;lt;/tt&amp;gt; command that allows us to get logically grouped options, say for example you want to view all your database related options, or you want to view all email related options. To achieve this the CLI Update provide an option to specify a group of options to display, here is how to do that: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php config:get --group=mail&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command takes in the &amp;lt;tt&amp;gt;group&amp;lt;/tt&amp;gt; option and given the value of &amp;lt;tt&amp;gt;mail&amp;lt;/tt&amp;gt;. CLI Update currently supports &lt;br /&gt;
&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497038</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497038"/>
		<updated>2018-07-28T05:52:22Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The options defined are loaded and validated after which the installation will run.q&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497029</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497029"/>
		<updated>2018-07-27T18:27:00Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
Joomla! provides installing an extension through a URL to the zip file or a path to the file, the CLI Update provides both as well and how you can use them is described below.&lt;br /&gt;
*Installing from URL&lt;br /&gt;
To install an extension from URL we will run the command like this and provide an argument and option for the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command.&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install url --url=https://github.com/joomla-extensions/patchtester/releases/download/3.0.0-beta3/com_patchtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will download the &amp;lt;tt&amp;gt;com_patchtester&amp;lt;/tt&amp;gt; extension.&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
To install an extension from a PATH we will run the same &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command and specify arguments for paths like this:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install path --path=/user/bosunski/docs/com_pathtester.zip&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This loads the extension and performs the installation as expected&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
The last command under this category is the the &amp;lt;tt&amp;gt;extension:remove&amp;lt;/tt&amp;gt; command that is used to remove extensions from the Joomla! CMS. This command takes in the &amp;lt;tt&amp;gt;extension_id&amp;lt;/tt&amp;gt; as an argument, you can always use the &amp;lt;tt&amp;gt;extension:list&amp;lt;/tt&amp;gt; to display extension id. This is how we remove an extension of id &amp;lt;tt&amp;gt;802&amp;lt;/tt&amp;gt;&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
As much as the CLI Update provides a command to check update, it also provides a command to perform the update if an update is available. To perform update we will just run this:&amp;lt;br/&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:update&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This command updates the Joomla! core updating it to the latest version available&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
The next command here is the &amp;lt;tt&amp;gt;core:intall&amp;lt;/tt&amp;gt; command that lets installation of Joomla! CMS to be done via the CLI. This command can  work in 2 modes: The Interactive mode and the Non-interactive mode.&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
To have a fresh installation of Joomla! using the interactive mode we will just run the &amp;lt;tt&amp;gt;extension:install&amp;lt;/tt&amp;gt; command like so:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:install&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The default installation mode with run and will ask you to input the settings as it&#039;s required, once all options have been provided and validated, the installations will run and Joomla! will be installed.&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
The next type of installation is the Non-interactive mode, in this mode you will not be asked to input the options but rather all options will be specified within a file and the command will take in an option that specifies the path to the file you want to load the options from, it&#039;s done like this:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php core:install --file=/path/to/config.json&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An example of the contents of &amp;lt;tt&amp;gt;config.json&amp;lt;/tt&amp;gt; can be:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;language&amp;quot;:&amp;quot;en-GB&amp;quot;,&lt;br /&gt;
  &amp;quot;site_name&amp;quot;:&amp;quot;Joomla&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_email&amp;quot;:&amp;quot;email@example.com&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_user&amp;quot;:&amp;quot;user&amp;quot;,&lt;br /&gt;
  &amp;quot;admin_password&amp;quot;:&amp;quot;password&amp;quot;,&lt;br /&gt;
  &amp;quot;db_type&amp;quot;:&amp;quot;mysql&amp;quot;,&lt;br /&gt;
  &amp;quot;db_host&amp;quot;:&amp;quot;localhost&amp;quot;,&lt;br /&gt;
  &amp;quot;db_user&amp;quot;:&amp;quot;root&amp;quot;,&lt;br /&gt;
  &amp;quot;db_pass&amp;quot;:&amp;quot;xcdxcx&amp;quot;,&lt;br /&gt;
  &amp;quot;db_name&amp;quot;:&amp;quot;jtest&amp;quot;,&lt;br /&gt;
  &amp;quot;db_prefix&amp;quot;:&amp;quot;efs0k_&amp;quot;,&lt;br /&gt;
  &amp;quot;db_old&amp;quot;:&amp;quot;remove&amp;quot;,&lt;br /&gt;
  &amp;quot;helpurl&amp;quot;:&amp;quot;https://joomla.org&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OR as sample &amp;lt;tt&amp;gt;config.ini&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
site_name=&amp;quot;gsoc&amp;quot;&lt;br /&gt;
admin_email=&amp;quot;user@example.com&amp;quot;&lt;br /&gt;
admin_user=&amp;quot;user&amp;quot;&lt;br /&gt;
admin_password=&amp;quot;secret&amp;quot;&lt;br /&gt;
db_type=&amp;quot;mysql&amp;quot;&lt;br /&gt;
db_host=&amp;quot;localhost&amp;quot;&lt;br /&gt;
db_user=&amp;quot;root&amp;quot;&lt;br /&gt;
db_pass=&amp;quot;&amp;quot;&lt;br /&gt;
db_name=&amp;quot;joomla&amp;quot;&lt;br /&gt;
db_prefix=&amp;quot;prefix_&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497023</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497023"/>
		<updated>2018-07-26T20:29:16Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
There are quite a number of commands available in the CLI Update that ready for use, these commands are grouped based on the area of the Joomla! CMS that they are touching.&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
The CLI Update provides a command to check for Joomla! updates, it works just like the web version of &amp;lt;tt&amp;gt;com_joomlaupdate&amp;lt;/tt&amp;gt;, it retrieves update and tells if update is available or not. To run the update check, we will just issue the command like this from the root directory:&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php check-updates&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
The command runs and the output displays an available update version, if available, or tell otherwise that the current installation is up to date.&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
The next group of commands are the extension based commands, simply put, the commands allows us to manage extensions within the Jommla! core, the CLI Update ships with commands to install, list and remove extensions.&lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
This command allows us to list all installed extensions. This command can run in two different ways which are:&lt;br /&gt;
*General Listing&lt;br /&gt;
Lists all the extensions installed, by extensions it means components, languages, plugins, modules will be listed together when you run this command. This is how you call the command:&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list&amp;lt;/tt/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
*Listing By types&lt;br /&gt;
General listing of extension can be tedious if you&#039;re looking for a particular extension out of the big list, however, you can beat down the numbers specifying the type of extensions you can the command to display by adding a type option to the command. Here is how that is done: &amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;php cli/joomla.php extension:list --type=component&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;/br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list out only component based extensions, you can specify type as module, plugin and language as well.&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
*Installing from URL&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497022</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=497022"/>
		<updated>2018-07-26T19:55:32Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Performing some minor task on the Joomla! administrator dashboard might seem cumbersome and slow. The CLI Update is introducing a faster way to perform some of these operations through the command line. It brings forward a way to integrate things faster in the Joomla! app. With it, small tests can be done faster without having to go through the process of the web dashboard. It a CLI Application to the Joomla! CMS that enables user to perform updates in the CMS.&lt;br /&gt;
&lt;br /&gt;
This documentation shows how the CLI Update can be used and how you can extend it&#039;s functionality as a developer.&lt;br /&gt;
===Requirements===&lt;br /&gt;
As it goes for all CLI (Command Line Interface) Apps, access to a to your Joomla! installation via the command line is very important to  use the tools provided by the CLI Update.&lt;br /&gt;
You might want to consider having an SSH access for your live server.&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
*CLI - Command Line Interface&lt;br /&gt;
*SSH - Secure SHell&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
In other for you to use the tools provided by CLI Update, as said in former section, you need access to a CLI into the root of the Joomla Installation. In other words you have to be in the root folder of your Joomla CMS as all commands will run from the root folder.&lt;br /&gt;
&lt;br /&gt;
%To include an Image here%&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
In this section we will talk about the usage of commands, we will talk about different commands, what they are and how you can use them. We will go by checking out available commands in the CLI Update.&lt;br /&gt;
===Available commands===&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
*General Listing&lt;br /&gt;
*Listing By types&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
*Installing from URL&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=496952</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=496952"/>
		<updated>2018-07-26T11:32:17Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
===The problem CLI Update is meant to solve===&lt;br /&gt;
===Requirements===&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
==General Command Usage==&lt;br /&gt;
===Available commands===&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
*General Listing&lt;br /&gt;
*Listing By types&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
*Installing from URL&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=496951</id>
		<title>J4.x:CLI Update</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:CLI_Update&amp;diff=496951"/>
		<updated>2018-07-26T11:29:55Z</updated>

		<summary type="html">&lt;p&gt;Bosunski: Created Outline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top portal heading|color=white-bkgd|text-color=#333|title=&lt;br /&gt;
GSoC 2018 &amp;lt;br /&amp;gt;&lt;br /&gt;
CLI Update &amp;lt;br /&amp;gt;Documentation}}&lt;br /&gt;
[[Image:Gsoc2016.png|75px|center|link=GSOC 2018]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
===The problem CLI Update is meant to solve===&lt;br /&gt;
===Requirements===&lt;br /&gt;
===Terms and definitions===&lt;br /&gt;
==Using the CLI Update==&lt;br /&gt;
===Available commands===&lt;br /&gt;
====Checking for Updates Updates====&lt;br /&gt;
====Extension commands:==== &lt;br /&gt;
======Listing installed extensions======&lt;br /&gt;
*General Listing&lt;br /&gt;
*Listing By types&lt;br /&gt;
======Installing an Extension======&lt;br /&gt;
*Installing from URL&lt;br /&gt;
*Installing from a PATH&lt;br /&gt;
======Removing an extension======&lt;br /&gt;
====Updating the Joomla! Core====&lt;br /&gt;
====Installing Joomla! via the CLI====&lt;br /&gt;
=====Interactive installation=====&lt;br /&gt;
=====Non-interactive Installation=====&lt;br /&gt;
====Configuration based commands====&lt;br /&gt;
=====Setting configurations=====&lt;br /&gt;
=====Getting configurations=====&lt;br /&gt;
=====Getting grouped configurations=====&lt;br /&gt;
====Site down and Site up commands====&lt;br /&gt;
==Contributing to CLI Update as a developer==&lt;br /&gt;
===Adding more commands===&lt;br /&gt;
===Calling other commands within command classes===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Google Summer of Code 2018]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_4.x]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bosunski</name></author>
	</entry>
</feed>