Hey, I'm the author of Tuckr. I just stumbled upon your project and decided to give it a shot with my own Tuckr dotfiles for fun.
Here's some feedback:
- the
stau uninstall has a confusing description:
Uninstall a package by removing symlinks and copying files back
I'm not really sure what "copying files back" mean here, back to where? There doesn't seem to be much documentation either.
-
You're mandating that dotfiles be in ~/dotfiles, that's against the XDG user dirs convention, so I think a nice compromise would be to also add and prefer putting things in .config/dotfiles but also allow putting them in $HOME. But I know many people don't care about littering home, and you already provide a way to override it at least.
-
You're reading $HOME to determine the home directory but this is not portable to windows and non unix like OSes, I'm not sure if you care about those OSes
-
The way you're detecting symlinks will only work if you're symlinking per file, if I have perfectly valid symlinks but the symlinks are directory, you can detect it. I used to do what you're doing but eventually moved to something like this:
let mut path = Path::from(dotfile);
while let Some(path) = path.pop() {
if path.is_symlink() && dotfiles::contains_file(path) {
return true;
}
}
false
This is more flexible if someone is coming from another tool to yours, migrating becomes easier too.
-
Along with the previous point, if a user tries to remove dotfiles from a previous symlink manager to yours (say stow to stau or tuckr to stau) your tool doesn't seem capable of removing the directory symlinks with stau uninstall so that I can install them back with yours
-
Consider adding aliases for the most common commands like s for status, i for install, u for uninstall`, etc
Hey, I'm the author of Tuckr. I just stumbled upon your project and decided to give it a shot with my own Tuckr dotfiles for fun.
Here's some feedback:
stau uninstallhas a confusing description:I'm not really sure what "copying files back" mean here, back to where? There doesn't seem to be much documentation either.
You're mandating that dotfiles be in
~/dotfiles, that's against the XDG user dirs convention, so I think a nice compromise would be to also add and prefer putting things in.config/dotfilesbut also allow putting them in$HOME. But I know many people don't care about littering home, and you already provide a way to override it at least.You're reading
$HOMEto determine the home directory but this is not portable to windows and non unix like OSes, I'm not sure if you care about those OSesThe way you're detecting symlinks will only work if you're symlinking per file, if I have perfectly valid symlinks but the symlinks are directory, you can detect it. I used to do what you're doing but eventually moved to something like this:
This is more flexible if someone is coming from another tool to yours, migrating becomes easier too.
Along with the previous point, if a user tries to remove dotfiles from a previous symlink manager to yours (say stow to stau or tuckr to stau) your tool doesn't seem capable of removing the directory symlinks with
stau uninstallso that I can install them back with yoursConsider adding aliases for the most common commands like
sfor status,ifor install,ufor uninstall`, etc