Doug Hellmann avatar Doug Hellmann committed 47aa40a

include more motivational background

Comments (0)

Files changed (1)

docs/source/plugins.rst

 .. _plugins:
 
-===================
- Extension Plugins
-===================
-
-virtualenvwrapper includes several ways to modify its behavior.
-End-users can use shell scripts or other programs for personal
+===========================
+Extending Virtualenvwrapper
+===========================
+
+Customizing one's development environment is a practice adopted from
+other tool-based jobs in which long experience leads to home-grown and
+unique solutions to persistent annoyances.  Carpenters build jigs,
+software developers write shell scripts.  virtualenvwrapper continues
+the tradition of encouraging a craftsman to modify his tools to work
+the way he wants, rather than the other way around.
+
+Use the hooks provided to eliminate repetitive manual operations and
+streamline your development workflow.  For example, the pre_activate
+and post_activate hooks can trigger an IDE to load a project file to
+reload files from the last editing session, manage time-tracking
+records, or start and stop development versions of an application
+server.  The initialize hook can be used to add entirely new commands
+and hooks to virtualenvwrapper.  And the pre_mkvirtualenv and
+post_mkvirtualenv hooks give you an opportunity to install basic
+requirements into each new development environment, initialize a
+source code control repository, or otherwise set up a new project.
+
+There are two ways to attach your code so that virtualenvwrapper will
+run it: End-users can use shell scripts or other programs for personal
 customization (see :ref:`scripts`).  Extensions can also be
 implemented in Python by using Distribute_ *entry points*, making it
-possible to share common behaviors between systems.
+possible to share common behaviors between systems and developers.
 
 Defining an Extension
 =====================
 ----------
 
 The ``virtualenvwrapper.initialize`` hooks are run each time
-``virtualenvwrapper.sh`` is loaded into the user's environment.
+``virtualenvwrapper.sh`` is loaded into the user's environment.  The
+initialize hook can be used to install templates for configuration
+files or otherwise prepare the system for proper plugin operation.
 
 .. _plugins-pre_mkvirtualenv:
 
 an environment is deleted.  The name of the environment being deleted
 is passed as the first argument.
 
+
 .. _Distribute: http://packages.python.org/distribute/
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.