creating this new module for Scripts, the easiest way to tell Wizard
about the application is to add it to the :mod:`wizard_scripts`
`setuptools plugin <http://aroberge.blogspot.com/2008/12/plugins-part-6-setuptools-based.html>`_.
-EVen if you don't know anything about setuptools, it's pretty easy
+Even if you don't know anything about setuptools, it's pretty easy
to add your application: edit the file :file:`plugins/scripts/setup.py`
and add your application to the ``wizard.app`` entry point by looking
for the following chunk of code and adding a new line::
to the connection, you can perform implicit execution.
To test if your installation function works, it's probably convenient to
-create a test script in :file:`tests`; :file:`tests/test-install-wordpress.sh`
+create a test script in :file:`tests`; :file:`tests/wordpress-install-test.sh`
in the case of Wordpress. It will look something like::
#!/bin/bash -e
+ cd `dirname $0`
DEFAULT_HEAD=1
- TESTNAME="install_wordpress"
+ TESTNAME="wordpress_install"
source ./setup
wizard install "wordpress-$VERSION-scripts" "$TESTDIR" --non-interactive -- --title="My Blog"
+.. note::
+
+ As you develop more test-scripts, you may find that you are
+ frequently copy pasting install commands. In this case, it may be
+ useful to create a 'wordpress-install' helper shell fragment and
+ source it whenever you need a vanilla installation.
+
``DEFAULT_HEAD=1`` indicates that this script can perform a reasonable
operation without any version specified (since we haven't tagged any of our
commits yet, we can't use the specific version functionality; not that we'd want
-to, though). ``TESTNAME`` is simply the name of the file with the leading
-``test-`` stripped and dashes converted to underscores. Run the script with
+to, though). ``TESTNAME`` is simply the name of the file with the trailing
+``-test`` stripped and dashes converted to underscores. Run the script with
verbose debugging information by using::
- env WIZARD_DEBUG=1 ./test-install-wordpress.sh
+ env WIZARD_DEBUG=1 ./wordpress-install-test.sh
The test scripts will try to conserve databases by running ``wizard remove`` on the
old directory, but this requires :meth:`~wizard.app.remove` be implemented.
the installation on a Scripts server. You can do this manually or use
the test script you created::
- env WIZARD_NO_COMMIT=1 ./test-install-wordpress.sh
+ env WIZARD_NO_COMMIT=1 ./wordpress-install-test.sh
:envvar:`WIZARD_NO_COMMIT` (command line equivalent to ``--no-commit``)
prevents the installer from generating a Git commit after the install, and will
#. Create the new repository and new module,
#. Implement :meth:`~wizard.app.Application.download`,
+#. Register the application at the ``wizard_scripts`` plugin,
#. *For Conversions:* Find the oldest extant version with ``wizard summary version $APP``,
#. Run ``wizard prepare-pristine $VERSION``,
#. Commit with ``-m "$APPLICATION $VERSION"`` and tag ``$APP-$VERSION``,
#. *For PHP:* Copy in :file:`php.ini` file and run ``athrun scripts fix-php-ini``,
#. Commit with ``-m "$APPLICATION $VERSION"``, but *don't* tag,
#. Implement :data:`~wizard.app.Application.install_schema` and :meth:`~wizard.app.Application.install`,
-#. Create :file:`tests/test-install-$APP.sh`,
+#. Create :file:`tests/$APP-install-test.sh`,
#. On a scripts server, run ``wizard install $APP --no-commit`` and check changes with ``git status``,
#. Implement :attr:`~wizard.app.Application.extractors`,
:attr:`~wizard.app.Application.substitutions`, :attr:`~wizard.app.Application.parametrized_files`,