Releases: RaphGL/Tuckr
Tuckr 0.11.0
Additions
- System specific cache files such as
.DS_Store
on MacOS,Thumbs.db
and.Trash-*
are ignored, thus avoiding false flags when detecting conflicting files and avoiding littering your repos when doing commands such astuckr push
- Group names are now validated to prevent crashes and erroneous behavior. All group names that would be rejected by the file system on Windows, MacOS and Unix-like systems are now considered erroneous and rejected by tuckr. This might be "limiting" but it guarantees the program always works correctly
- Hooks are now aware of conditional groups as well for convenience and consistency's sake
- Added missing
-y
flag onadd
andrm
commands - Added
unset
command, this command runs a hook prefixed withrm
before removing the group - Added
TUCKR_HOME
andTUCKR_TARGET
to override the default tuckr assumptions for where dotfiles are and where they are going to be linked into.TUCKR_HOME
is the parent directory of yourdotfiles
directory andTUCKR_TARGET
is the directory base directory from which all dotfiles are symlinked, by default it's$HOME
(%USERPROFILE%
on windows) - Dotfile groups now fallback when a conditional group has the same file. This allows for overriding dotfiles for a specific platform
Fixes
tuckr groupis
no longer stops if a single check fails:
Previously if a command liketuckr groupis file1 file2 file3
was run andfile2
was not in any group the command would stop the checks altogether. Now it will continue checking until the end.- The symlinking step of running a hook is skipped for hooks that don't have a corresponding Configs group, this prevents the hook from being interrupted needlessly
Removal
- Removed the
from-stow
command, as it assumed that you were using stow in the same way I did (grouping dotfiles by program at the top level of a dotfiles repo), so if your stow repo was setup differently,tuckr from-stow
would just result in a tuckr repo that cannot fully take advantage of the group tracking/validation. So I've decided to remove the command and force users to manually convert their repos to tuckr as documented on the readme and the wiki.
Tuckr 0.10.1
Additions
- Conditional groups are now automatically included when the base group name is used
- internationalization has been added. Currently English, Spanish and Portuguese are available. Make a PR with your languages!
- The
encrypt
command now works with directories
Fixes
- Fixed
groupis
crashing when a relative path is supplied - Fixed panic when attempting to use secrets with invalid paths
- Fixed panic when attempting to
push
an invalid file path - Fixed hooks setup stopping when only one hooks group fails. Now if one group fails it will continue setting up the other groups and then at the end report back which groups failed.
Tuckr 0.10.0
New addition
With this release, profiles have been added. Making Tuckr support more use cases.
To learn more about why profiles might be needed, check the profiles page on the wiki.
Breaking change
In this release the commands that were previously ls-hooks
, ls-secrets
have been all merged into a single command.
Now there's only an ls
command that takes hooks
, secrets
or profiles
as its argument.
Their output has also been improved, ls hooks
in specific, now prints a nice informative table.
Fixes
- Fixed faulty symlinking on windows
- Fixed how the program detects conditional groups
- Fixed secrets refusing to work on valid targets (courtesy of @raphaelahrens)
- Fixed dotfiles lookup path not prioritizing config_dir
- Fixed wildcard adding invalid conditional groups (courtesy of @SirZenith)
- Fixed pushing directories not working
I would also like to thank @Jasha10 / @jasha-hrp for noticing a bunch of issues and reporting them so I could keep making the tool even better :)
Tuckr 0.9.1
What's changed
- previous release broke
pop
andpush
, but are now working as intended - improved error messages, reducing the amount of panics encountered and instead having some more understandable errors
New command
With this release a new command has been added called groupis
. With the previous strategy for symlinking simply running ls -l
one would see where the origin of the symlink was, but that is no longer the case. A non symlinked file doesn't necessarily mean it's not from one's dotfiles (though you could keep going to the parent path until you found a symlink, that's tedious).
So with tuckr groupis
you can easily know what group a file belongs to, it also can be "chained" with the rm
, set
, etc commands.
Here's some examples:
Check what group a file belongs to
$ tuckr groupis my_config.py
groupname
Remove the group a file belongs to
$ tuckr rm $(tuckr groupis my_config.py)
Remove everything besides the group the file belongs to
$ tuckr rm \* -e $(tuckr groupis my_config.py)
You can use it to feed to any command that takes a group as input.
Full Changelog: 0.9.0...0.9.1
Tuckr 0.9.0
This release is potentiallly a breaking change for some. Hooks and Secrets remain unchanged but symlinking has changed strategy from a simple symlink from dotfiles path to $HOME to shallow symlinking, thus getting more in line with what stow itself does and providing a better user experience.
I recommend doing the following:
before upgrading run
$ tuckr rm \*
and after upgrading run
$ tuckr add \*
This ensures that all your dotfiles are converted to the new symlinking strategy.
What's changed
- Fixed conflict resolution command not working
- Fixed globbing causing error when provided alongside group names
- Files can now be symlinked into any directory due to shallow symlinking, instead of just doing nothing silently
- Improved status reporting for specific groups and you're now able to know whether a dotfile is symlinking elsewhere or if it's in conflict
- Invalid groups now give an error instead of failing silently
Full Changelog: 0.8.1...0.9.0
Tuckr 0.8.1
What's changed
- Improved error messages
- Added
push
andpop
commands for Configs ls-hooks
andls-secrets
now use the system's default file listing utility
Full Changelog: 0.8.0...0.8.1
Tuckr 0.8.0
What's changed
- Added
ls-hooks
andls-secrets
commands, making it easier to know what are the available hooks and secrets - Added conditional groups
- Improved symlink status reports
- Fixed symlinking not working on non unix systems
- FIxed validation not working on windows
Conditional groups
Tuckr now supports conditional groups. Conditional groups allows files to only be deployed on specific systems. They're just regular group directories suffixed with the preferred platform (e.g. vscode_windows, vscode_unix, vscode_macos). Tuckr will treat them as if they were a part of the original unsuffixed group.
You can learn more about the state of all associated groups by running tuckr status nvim
.
Full Changelog: 0.7.1...0.8.0
Tuckr 0.7.1
What's changed
- Improved error messages for status and decrypt commands
- Improved error codes. Status now will return 0 if all dotfiles are symlinked and 1 otherwise
Full Changelog: 0.7.0...0.7.1
Tuckr 0.7.0
What's changed
- Programs are now called group for better consistency.
- Now one can check statuses for individual groups and know what individual files are in conflict for each group
Full Changelog: 0.6.1...0.7.0
Tuckr 0.6.1
What's changed
- Added more command aliases
- Made exit codes consistent, facilitating scripting with tuckr
- Added missing flags to secrets
Full Changelog: 0.6.0...0.6.1