Commit graph

392 commits

Author SHA1 Message Date
LE Manh Cuong 8544b2f0f5 Allow directory with trailing and leading spaces
- The `sanitize_path_options` functions remove all trailing
 and leading spaces. So any valid directory like ` 123`,
 `123 ` can not be used

 - Also if there are two directories ` 123` and `123`, and if
 user pick the ` 123` as option to `-d` or `-t`, then stow pick
 directory `123` as the argument instead of ` 123` as user want.

    ```
    STOW_DIR=. stow -n -v3 -t \ 123 456
    stow dir is /tmp/test
    stow dir path relative to target 123 is ..
    cwd now 123
    cwd restored to /tmp/test
    cwd now 123
    Planning stow of package 456...
    Stowing contents of ../456 (cwd=/tmp/test/123)
    Planning stow of package 456... done
    cwd restored to /tmp/test
    WARNING: in simulation mode so not modifying filesystem.
    ```
 - This commit remove the check in `sanitize_path_options` function,
 and now stow can work with those directories. There have been a check
 for valid directory, so we are safe.
2015-11-13 20:17:58 +07:00
Adam Spiers dc1ded469b set up Travis CI 2015-11-13 12:05:42 +00:00
Adam Spiers f24de47b82 add IO::Scalar to build_requires 2015-11-13 12:05:42 +00:00
Adam Spiers a111eeb8ae Do more validation on --dir / --target directories (#7)
Previously STOW_DIR=0 would cause the cwd to be used as the STOW_DIR.
Make that instead raise an error.  Do similar validation on the target
directory.

Closes #7 - https://github.com/aspiers/stow/pull/7
2015-11-11 12:30:50 +00:00
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
Adam Spiers b5dbc3b7b4 More fixes to "make distcheck"
As with dc6a141d, the dependency of distributed files on non-distributed
files was causing this error:

    ERROR: files left in build directory after distclean:

The automake FAQ explains why this happens:

    https://www.gnu.org/software/automake/manual/html_node/Errors-with-distclean.html

so change the dependency to Makefile.am which is distributed.
2015-11-09 12:38:39 +00:00
Adam Spiers c482b0291d NEWS: Explain why 2.2.1 was not released 2015-11-09 12:36:51 +00:00
Adam Spiers ab9d03535d Bump version to 2.2.2 2015-11-09 12:36:51 +00:00
Adam Spiers 43333b8eca add Stow/Util.pm.in with @VERSION@ substitution
This is now necessary in order to prevent pause.perl.org from
complaining:

    Status: Decreasing version number
    =================================

         module : Stow::Util
         version: undef
         in file: lib/Stow/Util.pm
         status : Not indexed because lib/Stow/Util.pm in
                 A/AS/ASPIERS/Stow-v2.2.0.tar.gz has a higher version number
                 (0)
2015-11-09 12:36:51 +00:00
Adam Spiers d82b6aa1a8 HOWTO-RELEASE: remove body indent 2015-11-09 11:05:20 +00:00
Adam Spiers ee118fb616 HOWTO-RELEASE: add link to official GNU maintainers guide 2015-11-09 11:05:14 +00:00
Adam Spiers 2119e75d2b HOWTO-RELEASE: encourage use of SemVer 2015-11-09 10:13:34 +00:00
Adam Spiers 0a54a6bbab HOWTO-RELEASE: encourage GPG-signing of release tags 2015-11-09 10:11:59 +00:00
Adam Spiers 7faa1d86dc HOWTO-RELEASE: use gnulib for gendocs instead of texinfo
These days it seems that gendocs can be done entirely from
the templates in gnulib, rather than requiring the texinfo
repository.
2015-11-09 10:10:36 +00:00
Adam Spiers dc6a141da4 fix make distcheck
The dependency of the distributed file stow.8 on the non-distributed
file Makefile was causing this error:

    ERROR: files left in build directory after distclean:
    ./doc/stow.8

The automake FAQ explains why this happens:

    https://www.gnu.org/software/automake/manual/html_node/Errors-with-distclean.html

so change stow.8 to depend on Makefile.am which is distributed.
2015-11-09 10:08:31 +00:00
Adam Spiers f1b67d2432 HOWTO-RELEASE: include automake --add-missing
This is necessary since automake files were removed from the repository
recently.
2015-11-09 09:28:51 +00:00
Adam Spiers c749cc4f26 Update META.{yml,json}
Rebuilt with newer Module::Build.
2015-11-09 09:27:49 +00:00
Adam Spiers 99e4b7049a Bump version to 2.2.1 2015-11-09 09:17:34 +00:00
Adam Spiers c77e85c5e9 Prepare NEWS file for 2.2.1 release 2015-11-09 09:16:53 +00:00
Adam Spiers 3d0e3cb48e Remove trailing whitespace from NEWS file 2015-11-09 09:16:51 +00:00
Adam Spiers 29a8b5d4e5 Add more index entries to the manual. 2015-11-09 09:03:49 +00:00
Adam Spiers e255b27976 Fix a typo in the docs. 2015-11-09 09:03:42 +00:00
Adam Spiers 99b669968d substitute @VERSION@ in stow.8 man page
Thanks to Yue Du for spotting this issue and providing the fix.
2015-02-07 19:30:29 +00:00
Adam Spiers 3a7cf35165 remove automake files
These should be generated at development / install-time, rather than
distributing versions via git which will inevitably age over time.
2015-02-07 19:30:26 +00:00
Adam Spiers 7b43622dd9 fix stowing of relative links when --no-folding is used
With a tree like this:

    .
    |-- stow
    |   `-- pkg
    |       `-- lib
    |           |-- itk-current -> itk4.0.0
    |           `-- itk4.0.0
    |               `-- libitk4.0.0.so
    `-- target
        `-- lib
            |-- itk4.0.0 -> ../../stow/pkg/lib/itk4.0.0
            `-- libfoo-1.2.3.so

stowing pkg with the --no-folding option resulted in itk-current
being "unpacked":

    .
    `-- target
        `-- lib
            |-- itk-current
            |   `-- libitk4.0.0.so -> ../../../stow/pkg/lib/itk-current/libitk4.0.0.so
            |-- itk4.0.0
            |   `-- libitk4.0.0.so -> ../../../stow/pkg/lib/itk4.0.0/libitk4.0.0.so
            `-- libfoo-1.2.3.so

This commit fixes it so that it gets stowed as a symlink:

  .
  `-- target
      `-- lib
          ...
          |-- itk-current -> ../../stow/pkg/lib/itk-current
          ...

Thanks to Gabriele Balducci for reporting this problem:

    http://thread.gmane.org/gmane.comp.gnu.stow.general/6676
2015-01-01 19:02:46 +00:00
Adam Spiers 5be496a795 improve debug 2015-01-01 19:02:26 +00:00
Adam Spiers 07a84541f1 make it more obvious when target (sub)directory is skipped
This should avoid the sort of confusion seen in:

  https://github.com/aspiers/shell-env/issues/1
2014-09-23 01:37:54 +01:00
Adam Spiers 497a067621 trim trailing whitespace 2014-09-23 01:37:54 +01:00
Adam Spiers dda7c5a359 update aclocal 2014-09-22 00:14:56 +01:00
Adam Spiers d788ce0c1c avoid precedence warning
With Perl 5.20, installing a package with stow gives a warning like
this:

  Possible precedence issue with control flow operator at
  /gar/packages/stow-2.2.0/lib/perl5/site_perl/5.20.0/Stow.pm line 1736.

http://lists.gnu.org/archive/html/bug-stow/2014-06/msg00000.html

Suggested-by: Adam Sampson <ats@offog.org>
2014-06-16 10:22:55 +01:00
Adam Spiers 20d3759ac1 add TODO for install-hooks 2013-04-24 08:46:52 +01:00
Adam Spiers c500216f20 correctly handle the stow/target directories as non-canonical paths
Fix the case discovered by Hiroyuki Iwatsuki where stowing fails if
the stow / target directories are non-canonical paths.  For example,
on FreeBSD /home is a symlink pointing to 'usr/home', so running with
the stow directory as /home/user/local/stow and the target directory
as /home/user/local previously resulted in the stow directory path
being calculated as ../../../usr/home/user/local/stow relative to
the target.

http://article.gmane.org/gmane.comp.gnu.stow.bugs/8820
2013-04-12 17:48:08 +01:00
Adam Spiers fe5b658803 default-ignore-list: ignore top-level README.*, LICENSE.*, and COPYING
These files are by definition specific to a given package,
so if they exist in the top-level directory, they should
not be stowed.
2013-04-12 17:42:14 +01:00
Adam Spiers 8ccef07601 Only include $! in error messages for failed syscalls. 2012-07-09 01:06:13 +01:00
Adam Spiers 67936bd7de Fix RT ticket #75349
https://rt.cpan.org/Ticket/Display.html?id=75349
2012-07-09 01:05:27 +01:00
Adam Spiers db7819dbf2 Bug #36478 - fix Perl warnings from 'require 5.6.1;'
https://savannah.gnu.org/bugs/?36478
2012-05-16 11:02:40 +01:00
Adam Spiers b6f9ef2b2f Revamp README. 2012-03-01 11:40:34 +00:00
Adam Spiers af36a44bcb Remove accidentally duplicated code. 2012-02-19 19:16:00 +00:00
Adam Spiers 1517384e53 Improve docs for path_owned_by_package() 2012-02-19 11:58:45 +00:00
Adam Spiers db784f0a5f Fix typo in manual. 2012-02-19 01:42:10 +00:00
Adam Spiers 037ce9ee8a Add a few more items to index. 2012-02-19 01:42:04 +00:00
Adam Spiers 50d28a4306 Add boilerplate commit message for web docs update. 2012-02-18 20:43:20 +00:00
Adam Spiers 4cd91ed54c Bump version to 2.2.0 2012-02-18 20:33:34 +00:00
Adam Spiers ed12c787df Add --no-folding option. 2012-02-18 20:33:34 +00:00
Adam Spiers 17d3586e84 Remove -a option for safety reasons (but keep --adopt). 2012-02-18 20:33:34 +00:00
Adam Spiers a127d22457 Improve error message when package is not found. 2012-02-18 20:33:34 +00:00
Adam Spiers 91c816e32d Use make_invalid_link() to reliably setup symlink fixtures. 2012-02-18 20:33:34 +00:00
Adam Spiers af4557c543 Add documentation improvements to NEWS. 2012-02-18 20:33:34 +00:00
Adam Spiers 30a70aa3ef Update TODO 2012-02-18 20:33:34 +00:00
Adam Spiers 1af824908d Last known bug was fixed a long time ago :-) 2012-02-18 20:33:34 +00:00