The zotonic command runs a number of utility commands which all operate on a Zotonic instance.
The zotonic command lives in the bin/ folder of the Zotonic source. Putting this path into your PATH variable makes working with Zotonic a lot easier:
The command determines where the Zotonic base dir is by looking at its path; it always assumes that its zotonic basedir is one dir up from where the binary itself is.
Currently, the following subcommands are implemented:
Manages modules. It has the following subcommands:
install <module> [module2, ...] Installs a module from the http://modules.zotonic.com repository into your Zotonic instance. The module will be checked out using source control (either git or hg) into the priv/modules folder.
uninstall <module> [module2, ...] Uninstall a module
activate <module> [module2, ...] Activate a module
deactivate <module> [module2, ...] Deactivate a module
update <module> [module2, ...] Update a module
restart <module> [module2, ...] Restart a module
reinstall <module> [module2, ...] Reinstall a module
sync-branches Tries to update all installed modules to reflect the module’s branch to the currently checked out Zotonic branch.
list List all modules available on the Zotonic Module Repository
search <query> Search for a module
|--version||show program’s version number and exit|
|-h, --help||show this help message and exit|
|-z ZMR, --zmr=ZMR|
|Zotonic modules repository|
|-s SITE, --site=SITE|
|affected Zotonic site|
|-d, --debug||enable debugging|
|-n NODE, --node=NODE|
|Zotonic Erlang node|
Copy [site_name] and its database content from the [source_server] over SSH and load its content into the filesystem and database of the local machine. You will need to have created the database zotonic_[site_name] for this to work.
Warning: This command will reset the content of the database to the content retrieved from the [source_server]. It does, however, generate and output a restore file in case this was run by accident and explains how to recover.
Create a database called zotonic_[site_name] with the basic setup in place to host a Zotonic datastore. This script will likely need to be run as postgres unless zotonic has been granted CREATEDB in postgres as follows:
ALTER ROLE zotonic WITH CREATEDB
Take a version control snapshot of [site_name] including its database content.
This works differently from mod_backup in that it consistently uses the same filename for the SQL backup to make revision-based full site rollbacks possible.
Compiles and reloads a single Erlang module within the Zotonic folder. This runs very fast and works very well on a save-hook of your text editor. In Emacs, it would be called like this:
(add-hook 'erlang-mode-hook '(lambda () (add-hook 'after-save-hook ' (lambda () (call-process "/path/to/your/bin/zotonic" nil "*scratch*" nil "compilefile" buffer-file-name) ) ) ))