Skip to main content

Buildout recipe to create symlinks

Project description

================================
Introduction
================================

This recipe makes it easy to create symbolic links on Unix variants. Links can be
specified one by one, or in bulk. Various shortcuts are provided to avoid unnecessary
repetition of source & target paths, etc.

Warning: If you're going to be linking to directories, **make sure** to see the wiki
`page <https://github.com/koodaamo/cns.recipe.symlink/wiki/zc.buildout-bug-%23144228>`_
on how to work around zc.buildout bug #144228. Otherwise your buildout will fail.

Common options
===================

- *symlink_base* option may contain a common (source) base directory for symlinking,
when links are created for many items from the same directory.
- *symlink_target* may contain common target directory, when links are created in the
same directory.
- *autocreate* causes a target directory to be created if it does not exist


Specifying individual links
=============================

- *symlink* option contains one or more values in format source=target

Example 1::

[symlinks]
symlink = ~/work/MyProj = ${buildout:directory}/products
autocreate = true


If a common *symlink_target* is specified, *symlink* can be in format: source= (omitting target directory)

Specifying links in bulk
==========================

Links can be created for all items in a directory given via *symlink_base*, all buildout
eggs, and all development eggs. When links are created in bulk, they are always created
in directory given by *symlink_target*.

There's also a special option to constrain bulk link creation:

- *ignore* option contains one or more wildcard expressions for choosing items that will
be ignored, ie. no links will be created for them


For files in directory
------------------------

If *symlink_base* & *symlink_target* are specified, but no *symlink* option is given,
links are created for all items found in the (source) base directory. Furthermore, even
if *symlink* option is used, links can still also be created for all items in
*symlink_base* by giving the *bulk* option that forces bulk link creation even if
individual *symlink* specification is used.

Example 2::

[symlinks]
symlink_base = ~/work/
symlink_target = ${buildout:directory}/products
ignore = *.tmp


For eggs in buildout
---------------------

There are two options to generate symlinks for eggs downloaded to a buildout.

- *eggs*
- *develop*

The *ignore option* can be used here as well.

Example 3::

eggs = true
develop = true
ignore = *.tar.gz
*.zip
symlink_target = ${buildout:directory}/products


Contributors
==============

Radim Novotny, original author;
Petri Savolainen, contributor

Change history
================

0.2.3 (2011-12-07)
------------------

- Sphinx docs
- Minor fixes

0.2.2 (2011-12-02)
------------------

- Raise error on nonexistent base source directory
- Provide 'autocreate' option to create target directory if it does not exist

0.2.1 (2011-12-02)
------------------

- New feature for ignoring some items

0.2 (2011-12-02)
----------------

- New feature for bulk creation of links
- Repackaged based on ZopeSkel recipe
- Minor doc improvements
- Source now on github

0.1
-----------------

- Initial release

Download
==========

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

cns.recipe.symlink-0.2.3.zip (20.1 kB view hashes)

Uploaded Source

cns.recipe.symlink-0.2.3.tar.gz (12.5 kB view hashes)

Uploaded Source

Built Distributions

cns.recipe.symlink-0.2.3-py2.7.egg (10.1 kB view hashes)

Uploaded Source

cns.recipe.symlink-0.2.3-py2.6.egg (10.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page