Skip to content

Releases: RaphGL/Tuckr

Tuckr 0.11.0

02 Feb 17:34
Compare
Choose a tag to compare

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 as tuckr 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 on add and rm commands
  • Added unset command, this command runs a hook prefixed with rm before removing the group
  • Added TUCKR_HOME and TUCKR_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 your dotfiles directory and TUCKR_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 like tuckr groupis file1 file2 file3 was run and file2 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

29 Dec 20:00
Compare
Choose a tag to compare

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

30 Oct 22:47
Compare
Choose a tag to compare

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

13 Aug 12:49
Compare
Choose a tag to compare

What's changed

  • previous release broke pop and push, 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

27 Jul 21:10
Compare
Choose a tag to compare

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

07 Jul 14:57
Compare
Choose a tag to compare

What's changed

  • Improved error messages
  • Added push and pop commands for Configs
  • ls-hooks and ls-secrets now use the system's default file listing utility

Full Changelog: 0.8.0...0.8.1

Tuckr 0.8.0

27 Mar 17:31
Compare
Choose a tag to compare

What's changed

  • Added ls-hooks and ls-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

17 Feb 16:09
Compare
Choose a tag to compare

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

06 Feb 12:46
Compare
Choose a tag to compare

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

26 Jan 16:27
Compare
Choose a tag to compare

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