Hey,
Background
I have a use case where the .dfminstall's recurse is not working like I hope it would. Normally there is not data in $XDG_DATA_HOME (default: ~/.local/share) but I happen to have a few files that I actually want to have managed by git in my dotfiles repo that should integrate with existing file in this installation destination. Using recurse install works fine for me e.g. to merge existing contents in my $HOME/bin with the folder bin/ in my dotfiles repo with a line like bin recurse in .dfminstall.
The issue is that it does not seems to work to recurse install in this case as there is a directory depth of 2 directories.
I have in my dotfiles repo some files in .local/share/... and would like them to be symlinked in to the existing $HOME/.local/share, without touching anything in $HOME/.local/* or $HOME/.local/share*. The existing files must stay as they are not managed by the dotfiles git repo.
Minimal Example
I was experimenting a bit with different .dfminstall settings but could not get it to work. As it's quite a lot to clean up after the experiment, I made a minimal example with a different path here.
Before $ dfm install
$ tree $HOME/.test
.test
├── other
│ └── file1
└── share
└── file2
$ tree path/to/dotfiles/.test
.test
└── share
└── file3
$ cat path/to/dotfiles/.dfminstall
[...]
.test/share recurse
$dfm install
INFO: Installing dotfiles...
INFO: Backing up .test.
INFO: Symlinking .test (path/to/dotfiles/.test).
INFO: Backing up file3.
INFO: Symlinking file3 (../../path/to/dotfiles/.test/share/file3).
INFO: Backing up .backup.
mv: rename .backup to $HOME/.test/share/.backup/.backup: Invalid argument
INFO: Symlinking .backup (../../path/to/dotfiles/.test/share/.backup).
After $ dfm install
$ tree -A $HOME/.test
.test
└── share
├── .backup
│ └── file3
└── file3 -> ../../path/to/dotfiles/.test/share/file3
$ tree -a $HOME/.backup
.backup
└── .test
├── other
│ └── file
└── share
└── file2
Expected outcome after $dfm install
$ tree $HOME/.test
.test
├── other
│ └── file1
└── share
└── file2
└── file3 -> ../../path/to/dotfiles/.test/share/file3
Notes
I tried all in all the following settings in .dfminstall:
-
-
-
.test recurse
.test/share recurse
and the all yielded a bit different outcome, but none like the expected!
Would it be possible to support this use case with dfm? 😃
Hey,
Background
I have a use case where the
.dfminstall'srecurseis not working like I hope it would. Normally there is not data in$XDG_DATA_HOME(default:~/.local/share) but I happen to have a few files that I actually want to have managed by git in my dotfiles repo that should integrate with existing file in this installation destination. Usingrecurseinstall works fine for me e.g. to merge existing contents in my$HOME/binwith the folderbin/in my dotfiles repo with a line likebin recursein.dfminstall.The issue is that it does not seems to work to
recurseinstall in this case as there is a directory depth of 2 directories.I have in my dotfiles repo some files in
.local/share/...and would like them to be symlinked in to the existing$HOME/.local/share, without touching anything in$HOME/.local/*or$HOME/.local/share*. The existing files must stay as they are not managed by the dotfiles git repo.Minimal Example
I was experimenting a bit with different
.dfminstallsettings but could not get it to work. As it's quite a lot to clean up after the experiment, I made a minimal example with a different path here.Before
$ dfm install$dfm installAfter
$ dfm installExpected outcome after
$dfm installNotes
I tried all in all the following settings in
.dfminstall:.test/share recurse.test recurseand the all yielded a bit different outcome, but none like the expected!
Would it be possible to support this use case with dfm? 😃