|
| 1 | +### How are Tuckr and Stow different? |
| 2 | + |
| 3 | +Tuckr is sort of a spiritual successor to Stow. It adopts some of the functionality and the idioms people have used with Stow |
| 4 | +and attempts to make it more opinionated in hopes of making it easier to validate that your dotfiles are properly deployed. |
| 5 | + |
| 6 | +| **Tuckr** | **Stow** | |
| 7 | +|:--------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------:| |
| 8 | +| command based CLI | flag based CLI | |
| 9 | +| has a set lookup path which can be overwritten, this means tuckr can be called from anywhere | symlinks everything from the current directory to the parent or a specified directory | |
| 10 | +| checks every single file and gives feedback on whether they're symlinked, not symlinked or is a symlink to elsewhere | doesn't provide much checking, instead preferring to be a simple tool | |
| 11 | +| more complicated but made with dotfiles and scripting in mind, supports running hooks | very simple, compromises on error messages and wasn't initially built for dotfiles | |
| 12 | +| is multiplatform and supports conditional deployment based on the OS and OS family (including detecting WSL2) | is mostly meant for Unix-like systems and it doesn't concern itself with detecting platforms | |
| 13 | + |
| 14 | +Here's a noncomprehensive list of commands in both programs: |
| 15 | + |
| 16 | +| **Action** | **Tuckr** | **Stow** | |
| 17 | +|:------------------------------------------:|:-----------------------------:|:-------------:| |
| 18 | +| Symlink a set of dotfiles | tuckr add <group> | stow <dir> | |
| 19 | +| Remove dotfile symlinks | tuckr rm <group> | stow -D <dir> | |
| 20 | +| Dry run symlink files | tuckr -n add <group> | stow -n <dir> | |
| 21 | +| Check symlink status | tuckr status [group] | *None* | |
| 22 | +| Run setup scripts and symlink files | tuckr set [group] | *None* | |
| 23 | +| Remove files from repo and back into $HOME | tuckr pop <group> | *None* | |
| 24 | +| Add files to dotfiles repo | tuckr push <group> <files...> | *None* | |
| 25 | + |
| 26 | +### How do I share code between hooks? |
| 27 | + |
| 28 | +Tuckr changes the current directory to the directory of the hook group that is currently being run. |
| 29 | +So you can use relative paths to import code from the parent directory or anywhere else. |
0 commit comments