The kernel now comes with a script, emergence-create-site
, with which you can create sites from the command line. It makes use of a new unix socket readable by root
that the kernel exposes as an alternative for accessing its API without HTTP authentication based on /emergence/admins.htpasswd
.
Usage
Without any arguments, a site will be created with a random handle if the wamerican
package (or anything else providing /usr/share/dict/words
) is installed.
emergence-create-site
If no dictionary is available, or a custom handle is desired:
emergence-create-site --handle=mysite
The examples above will create a site extending skeleton-v1.emr.ge
by default, if you want to specify a parent site:
emergence-create-site --parent-hostname=v2.slate.is --parent-key=f6XqdJ2YIsm2oeXU
If a site with no parent really is desired:
emergence-create-site --no-parent
Without any primary hostname specified, ${HANDLE}.local
will be used, to specify a primary hostname:
emergence-create-site --primary-hostname=example.org
Additional hostnames to map to this site can be provided too:
emergence-create-site --secondary-hostnames=example.net,example.com
Without a site label provided, it will be left unset. To provide a label for the site:
emergence-create-site --label="My Example Site"
Additional tools for initializing the site
The script can also take care of some post-create operations. To precache all of the standard root trees:
emergence-create-site --precache-trees
You can also specify what trees you want to precache:
emergence-create-site --precache-trees=php-config,event-handlers,site-root/sass
Or add trees to the standard set:
emergence-create-site --precache-trees+=content
In the same vein, you can trigger empty database tables being created immediately (the default set is sessions
and people
):
emergence-create-site --generate-tables
emergence-create-site --generate-tables=UserSession,User
emergence-create-site --generate-tables+=Slate\Courses\Course,Slate\Courses\Section
Finally, you can even get dropped into a PHP shell for the new site:
emergence-create-site --shell
This can be used to pipe additional setup code into the new site after everything else has been processed:
cat my-setup-script.php | emergence-create-site --shell