concretecms / console
Concrete console utility.
Installs: 57
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 11
Forks: 3
Open Issues: 12
Requires
- php: ^7.1|^8.0
- ext-json: *
- ext-pdo: *
- composer/semver: ^3.2
- league/climate: ^3.5
- league/container: ^3.3
- league/flysystem: ^1.0
- mnapoli/silly: ^1.7
- symfony/process: ^3|^4|^5
Requires (Dev)
- ext-simplexml: *
- mockery/mockery: ^1.3
- nunomaduro/collision: ^3|^4|^5
- phpunit/phpunit: ^7|^8|^9
- squizlabs/php_codesniffer: ^3.5
Conflicts
README
A command line utility for working with Concrete CMS.
Installation
As a PHAR file
The latest version of the console cli tool is available at the following address:
https://github.com/concrete5/console/releases/latest/download/concrete.phar
Installation on Posix Systems
You simply have to download it and make it executable:
curl -L -o /usr/local/bin/concrete https://github.com/concretecms/console/releases/latest/download/concrete.phar chmod +x /usr/local/bin/concrete
Installation on Windows Systems
You can download the concrete.phar
file in a directory listed in your PATH
environment variable (for example: C:\Windows\System32
),
and create a concrete.bat
file in the same directory with the following contents:
@php "%~dpn0.phar" %*
With composer
The concrete console cli tool can also be installed globally with composer
composer global require concretecms/console
If you haven't already, make sure to add the global composer bin directory to your PATH.
export PATH="$(composer global config bin-dir --absolute --quiet):$PATH"
Note: This command will update the PATH
environment variable only for the current session. In order to make it persistent you can add the line
export PATH="$(composer global config bin-dir --absolute --quiet):$PATH"
To the $HOME/.profile
file (for the current user only), or to /etc/profile
(for any user)
Running Commands
You can run commands just like this
concrete info
Which should get you something like:
# Location
Path to instance: /path/to/my/project/public
# concrete5 Version
Installed - Yes
Core Version - 8.5.4
Version Installed - 8.5.4
Database Version - 20200609145307
If you want to run a command against a different site, or if you've installed the console utility globally, any command that operates against a particular Concrete instance also has an --instance
option (or -I
for short.)
concrete info --instance=/path/to/my/site
Returns
# Location
Path to instance: /path/to/other/site/web
# concrete5 Version
Installed - Yes
Core Version - 8.5.0
Version Installed - 8.5.0
Database Version - 20190301133300
Roadmap
The most important items we want to currently focus on are:
Add the ability to dump sites, configurations, files and more into a standardized backup archive.Add the ability to restore a Concrete site from one of these standardized backup archives, by passing a file to a givenconcrete restore my_backup.gz
command.- Improved stability of backup and restore
- Restore into an uninstalled concrete5
- Backing up a version 6 site
After that, we'd be happy to add as many features as you'd like. Should this tool include the ability to create boilerplate block or package code? Absolutely! Should we move code sniffer and code fixing functionality from the core console command to this tool? Yes, please.
FAQ
Why is this tool not built into the core?
We wanted a unified, standardized place to offer a devops and developer's toolkit. The core didn't seem like a great place for it. We want to be able to iterate on this quickly, which means not tying releases of this console utility to releases of the core.
Is this tool meant to replace the concrete5 utility that ships with the core?
I don't know yet. Perhaps in the long term, yes – but that seems like an awful lot of work. Let's just focus on making this tool augment and improve the tools around Concrete CMS, and slowly sunset the original console utility that's built into the core.