aspiers/stow

Allow auto-creating missing parent directories when using `--target`

Open

#124 opened on Jan 20, 2025

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Perl (51 forks)batch import
UXeasyenhancementhelp wanted

Repository metrics

Stars
 (1,013 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Currently pointing --target to a directory that doesn't yet exist results in the error:

stow: --target value '<path>' is not a valid directory

I understand why this is happening, but it makes using stow to manage certain use-cases (like installing into ~/.config on a fresh system) require an extra mkdir step first.

It would be really nice if running stow with a --target directory would automatically mkdir -p that target if it does not exist. Or if it can't be made the default, then I'd at least like a CLI option to enable this behavior.


As an example, say that we have the following folder structure:

.
└── stow-root
    └── pkg1
        └── some-file

I would like to be able to run just stow pkg1 --dir stow-root --target stow-target and generate the following tree:

.
├── stow-root
│   └── pkg1
│       └── some-file
└── stow-target
    └── some-file -> ../stow-root/pkg1/some-file

Note that the target directory ./stow-target was created when it previously did not exist.

Contributor guide