summaryrefslogtreecommitdiff
path: root/docs/deprecated/functionalities.rst
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2020-09-23 20:29:14 -0400
committerJason R. Coombs <jaraco@jaraco.com>2020-09-23 20:29:14 -0400
commit73e379cc55ac1e9ec63c4ac30b75ecc82418f513 (patch)
treeee65ef54e8eaf07817746057000486e773b83ce4 /docs/deprecated/functionalities.rst
parentcca3e01b03fe60945c4a01b8c23bcfa7ff0842b7 (diff)
downloadpython-setuptools-git-73e379cc55ac1e9ec63c4ac30b75ecc82418f513.tar.gz
Use canonical extension for docs.
Diffstat (limited to 'docs/deprecated/functionalities.rst')
-rw-r--r--docs/deprecated/functionalities.rst33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/deprecated/functionalities.rst b/docs/deprecated/functionalities.rst
new file mode 100644
index 00000000..c6ea83b3
--- /dev/null
+++ b/docs/deprecated/functionalities.rst
@@ -0,0 +1,33 @@
+"Eggsecutable" Scripts
+----------------------
+
+.. deprecated:: 45.3.0
+
+Occasionally, there are situations where it's desirable to make an ``.egg``
+file directly executable. You can do this by including an entry point such
+as the following::
+
+ setup(
+ # other arguments here...
+ entry_points={
+ "setuptools.installation": [
+ "eggsecutable = my_package.some_module:main_func",
+ ]
+ }
+ )
+
+Any eggs built from the above setup script will include a short executable
+prelude that imports and calls ``main_func()`` from ``my_package.some_module``.
+The prelude can be run on Unix-like platforms (including Mac and Linux) by
+invoking the egg with ``/bin/sh``, or by enabling execute permissions on the
+``.egg`` file. For the executable prelude to run, the appropriate version of
+Python must be available via the ``PATH`` environment variable, under its
+"long" name. That is, if the egg is built for Python 2.3, there must be a
+``python2.3`` executable present in a directory on ``PATH``.
+
+IMPORTANT NOTE: Eggs with an "eggsecutable" header cannot be renamed, or
+invoked via symlinks. They *must* be invoked using their original filename, in
+order to ensure that, once running, ``pkg_resources`` will know what project
+and version is in use. The header script will check this and exit with an
+error if the ``.egg`` file has been renamed or is invoked via a symlink that
+changes its base name. \ No newline at end of file