No description
Find a file
Adam Spiers d0f3e5458f Correctly handle empty STOW_DIR (#5, #6)
In shell, a variable is often considered unset even if it is
set to the empty string.  In other words,

  STOW_DIR= stow [args]

is an idiomatic alternative to writing:

  unset STOW_DIR
  stow [args]

and it also has the advantage of temporarily "unsetting" STOW_DIR
for a single command.

Therefore we should treat STOW_DIR being set to the empty string
as equivalent to it not being set at all.

Thanks to Cuong Manh Le for highlighting this issue!

Fixes #6  - https://github.com/aspiers/stow/issues/6
Closes #5 - https://github.com/aspiers/stow/pull/5
2015-11-11 11:28:47 +00:00
automake remove automake files 2015-02-07 19:30:26 +00:00
bin Correctly handle empty STOW_DIR (#5, #6) 2015-11-11 11:28:47 +00:00
doc HOWTO-RELEASE: remove body indent 2015-11-09 11:05:20 +00:00
lib add Stow/Util.pm.in with @VERSION@ substitution 2015-11-09 12:36:51 +00:00
t fix stowing of relative links when --no-folding is used 2015-01-01 19:02:46 +00:00
.gitignore add Stow/Util.pm.in with @VERSION@ substitution 2015-11-09 12:36:51 +00:00
aclocal.m4 update aclocal 2014-09-22 00:14:56 +01:00
AUTHORS Add a missing space. 2011-12-03 17:09:48 +00:00
Build.PL Fix some incorrect CPAN meta-data about the project. 2011-12-15 21:14:07 +00:00
configure.ac Bump version to 2.2.2 2015-11-09 12:36:51 +00:00
COPYING Grafted root commit from savannah git master: 2011-11-16 14:04:03 +00:00
default-ignore-list default-ignore-list: ignore top-level README.*, LICENSE.*, and COPYING 2013-04-12 17:42:14 +01:00
INSTALL Significantly improve the handling of --with-pmdir. 2011-12-07 20:48:50 +00:00
Makefile.am More fixes to "make distcheck" 2015-11-09 12:38:39 +00:00
MANIFEST add Stow/Util.pm.in with @VERSION@ substitution 2015-11-09 12:36:51 +00:00
MANIFEST.SKIP Ignore tmp-testing-trees anywhere. 2012-02-18 17:14:50 +00:00
META.json Bump version to 2.2.2 2015-11-09 12:36:51 +00:00
META.yml Bump version to 2.2.2 2015-11-09 12:36:51 +00:00
NEWS NEWS: Explain why 2.2.1 was not released 2015-11-09 12:36:51 +00:00
README Revamp README. 2012-03-01 11:40:34 +00:00
THANKS Correctly handle empty STOW_DIR (#5, #6) 2015-11-11 11:28:47 +00:00
TODO add TODO for install-hooks 2013-04-24 08:46:52 +01:00

README for GNU Stow
===================

This is GNU Stow, a symlink farm manager program which takes distinct
packages of software and/or data located in separate directories on
the filesystem, and makes them appear to be installed in the same
place.  For example, /usr/local/bin could contain symlinks to files
within /usr/local/stow/emacs/bin, /usr/local/stow/perl/bin etc., and
likewise recursively for any other subdirectories such as .../share,
.../man, and so on.

This is particularly useful for keeping track of system-wide and
per-user installations of software built from source, but can also
facilitate a more controlled approach to management of configuration
files in the user's home directory, especially when coupled with
version control systems.

Stow is implemented as a combination of a Perl script providing a CLI
interface, and a backend Perl module which does most of the work.

You can get the latest information about Stow from the home page:

    http://www.gnu.org/software/stow/

License
-------

Stow is free software, licensed under the GNU General Public License,
which can be found in the file COPYING.

Installation
------------

See INSTALL for installation instructions.

Feedback
--------

Please do send comments, questions, and constructive criticism.  The
mailing lists and any other communication channels are detailed on the
above home page.

Brief history
-------------

Stow was inspired by Carnegie Mellon's "Depot" program, but is
substantially simpler.  Whereas Depot requires database files to keep
things in sync, Stow stores no extra state between runs, so there's no
danger (as there is in Depot) of mangling directories when file
hierarchies don't match the database.  Also unlike Depot, Stow will
never delete any files, directories, or links that appear in a Stow
directory (e.g., /usr/local/stow/emacs), so it's always possible to
rebuild the target tree (e.g., /usr/local).