svetlyak40wt / dotfiler

Shell agnostic git based dotfiles package manager, written in Python.
238 stars 31 forks source link

Symlinks not created when target directory exists #15

Closed herrsimon closed 8 years ago

herrsimon commented 8 years ago

I just tried out your tool and noticed that sometimes not all links are created correctly:

Assume I have a repository in ~/.dotfiles/emacs with the following contents

~/.dotfiles/emacs/.emacs.d/init.el ~/.dotfiles/emacs/.emacs.d/config/base.el

Now, if in my home directory the directory ~/.emacs.d doesn't exists, everything runs nicely and 'dot update' creates a symlink from ~/.dotfiles/emacs/.emacs.d to ~/.emacs.d, here is the output from 'dot update --dry --verbose':

INFO Making pull in "emacs": INFO Already up-to-date. LINK Symlink from /home/simon/.emacs.d to /home/simon/.dotfiles/emacs/.emacs.d will be created

However, if the directory ~/.emacs.d already exists (I have some other files in it which should not be administered by dotfiler), it only creates a symlink for the config directory, not for init.el. Again, here is the output of "dot update --dry --verbose':

INFO Making pull in "emacs": INFO Already up-to-date. LINK Symlink from /home/simon/.emacs.d/config to /home/simon/.dotfiles/emacs/.emacs.d/config will be created

As you can see, the link for init.el is not created. I guess that there's some mistake in how dotfiler traverses the filesystem.

Best,

Simon

svetlyak40wt commented 8 years ago

Interesting. I've checked this on my own, and reproduced the bug. Will try to write a unit-test and fix it.

svetlyak40wt commented 8 years ago

Fixed in version 0.4.3.

By the way, you can subscribe on future releases here: https://allmychanges.com/p/python/dotfiler/#0.4.3