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:
export PATH=$HOME/zotonic/bin:$PATH
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
subcommand options:
--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)
)
)
))