zc.buildout recipe for managing WordPress plugins/themes and MediaWiki extensions
Project description
leocornus.recipe.wpmw
A buildout recipe trying to provide an easy way to manage WordPress Plugins, themes and MediaWiki Extenstions.
Detailed Documentation
This recipe should have 2 major functions: WordPress Plugins and MediaWiki Extensions
Options
The leocornus.recipe.wpmw:Plugins recipe could be used to download WordPress Plugins package, extract to certain folder, and create the symlink to WordPress wp-content/plugins folder. It supports the following general options:
Options for all recipes:
ignore-existing
default is true, ignore existing folder.
Options for plugins recipe:
plugins
A list of plugins id and version at format id=version. e.g. buddypress=1.5.1
plugins-repo
The base URL to download the plugins, default is http://downloads.wordpress.org/plugin. This option allow user to get plugins from an interal repository.
wordpress-root
The root folder of WordPress installation. The wp-content/plugins folder is within it.
Options for extensions recipe:
extensions
A list of extensions id and version at format id=version. e.g. SemanticForms=2.4
extensions-repo
The base URL, where we could download the extensions.
mediawiki-root
The root folder of MediaWiki installation. We will create symlink in its extensions sub-folder.
zc.buildout built in a set of easy to use functions to simplfy the testing for buildout recipe. Check http://pypi.python.org/pypi/zc.buildout/1.5.2#testing-support for more details.
Examples for WordPress Plugins
get ready a empty WordPress plugins folder for testing.
>>> import os.path >>> wordpress = tmpdir('wordpress') >>> mkdir(wordpress, 'wp-content') >>> ls(wordpress) d wp-content >>> mkdir(wordpress, 'wp-content', 'plugins') >>> ls(wordpress, 'wp-content') d plugins
try to crate a symlink in plugins folder to test the unlink function.
>>> import os >>> bp = tmpdir('bp-fake') >>> print bp /tmp/.../bp-fake >>> os.symlink(bp, os.path.join(wordpress, 'wp-content', 'plugins', 'buddypress')) >>> ls(wordpress, 'wp-content', 'plugins') d buddypress
create a broken symlink, we have to use os.path.lexists to check the link name exist or not.
>>> bplink = tmpdir('bp-link') >>> os.symlink(bplink, os.path.join(wordpress, 'wp-content', 'plugins', 'buddypress-links')) >>> ls(wordpress, 'wp-content', 'plugins') d buddypress d buddypress-links >>> remove(bplink) >>> ls(wordpress, 'wp-content', 'plugins') d buddypress l buddypress-links
Try to run the Plugins recipe. The sample_buildout is a built-in buildout object provided by zc.buildout.testing package.
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = wpplugins ... ... [wpplugins] ... recipe = leocornus.recipe.wpmw:plugins ... plugins = ... buddypress=1.5.1 ... bp-moderation=0.1.4 ... buddypress-links=0.5 ... wordpress-root = %(wordpress)s ... """ % dict(wordpress=wordpress))
Run the buildout
>>> print system(buildout) Installing wpplugins. Downloading http://downloads.wordpress.org/plugin/buddypress.1.5.1.zip wpplugins: Extracting package to .../sample-buildout/parts/wpplugins/buddypress-1.5.1 wpplugins: Create symlink to .../wordpress/wp-content/plugins/buddypress Downloading http://downloads.wordpress.org/plugin/bp-moderation.0.1.4.zip wpplugins: Extracting package to .../sample-buildout/parts/wpplugins/bp-moderation-0.1.4 wpplugins: Create symlink to .../wordpress/wp-content/plugins/bp-moderation Downloading http://downloads.wordpress.org/plugin/buddypress-links.0.5.zip wpplugins: Extracting package to .../sample-buildout/parts/wpplugins/buddypress-links-0.5 wpplugins: Create symlink to .../wordpress/wp-content/plugins/buddypress-links
Check the parts folder to make sure all plugins are downloaded.
>>> ls(sample_buildout, 'parts') d buildout d wpplugins>>> ls(sample_buildout, 'parts', 'wpplugins') d bp-moderation-0.1.4 d buddypress-1.5.1 d buddypress-links-0.5
check the WordPress plugins folder to make sure all symlink are created.
>>> ls(wordpress, 'wp-content', 'plugins') d bp-moderation d buddypress d buddypress-links
Examples for MediaWiki Extensions
We need a temp server for this testing
>>> import os.path >>> testdata = join(os.path.dirname(__file__), 'testdata') >>> server = start_server(testdata)
Prepare an empty MediaWiki extensions folder for testing
>>> mediawiki = tmpdir('mediawiki') >>> mkdir(mediawiki, 'extensions') >>> ls(mediawiki) d extensions
A simple buildout configuration file.
>>> write(sample_buildout, 'buildout.cfg', ... """ ... [buildout] ... parts = mwextensions ... ... [mwextensions] ... recipe = leocornus.recipe.wpmw:extensions ... extensions = ... Cite=r37577 ... SemanticForms=1.9.1 ... SemanticMediaWiki=1.5.1 ... extensions-repo = %(server)srepos ... mediawiki-root = %(mediawiki)s ... """ % dict(server=server, mediawiki=mediawiki))
Run the buildout and check the result.
>>> print system(buildout) Uninstalling wpplugins. Installing mwextensions. Downloading http://.../repos/Cite.r37577.zip mwextensions: Extracting package to .../sample-buildout/parts/mwextensions/Cite-r37577 mwextensions: Create symlink to .../mediawiki/extensions/Cite Downloading http://.../repos/SemanticForms.1.9.1.zip mwextensions: Extracting package to .../sample-buildout/parts/mwextensions/SemanticForms-1.9.1 mwextensions: Create symlink to .../mediawiki/extensions/SemanticForms Downloading http://.../repos/SemanticMediaWiki.1.5.1.zip mwextensions: Extracting package to .../sample-buildout/parts/mwextensions/SemanticMediaWiki-1.5.1 mwextensions: Create symlink to .../mediawiki/extensions/SemanticMediaWiki
check the parts folder.
>>> ls(sample_buildout, 'parts') d buildout d mwextensions d wpplugins >>> ls(sample_buildout, 'parts', 'mwextensions') d Cite-r37577 d SemanticForms-1.9.1 d SemanticMediaWiki-1.5.1
check the MediaWiki extensions folder
>>> ls(mediawiki, 'extensions') d Cite d SemanticForms d SemanticMediaWiki
Change History
1.0.1 (2012-03-06)
Using os.path.lexists instead of os.path.exists to make sure the broken symlinks got removed.
1.0.0 (2012-03-05)
Initial release
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for leocornus.recipe.wpmw-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ea51ff38d98c97e4c3aa9e5a2ed79925bcfd3ab29470d7acfe04eebd3960a551 |
|
MD5 | 8565ad98168164ea0d95aa1887272151 |
|
BLAKE2b-256 | 16afbbea8e158d5b6a9455534d4332a38288d5690df5a917f24f687740002c0b |