The dotfile and home synchronization tool for perfectionists with deadlines.
hogi is yet another approach to dotfile and home directory synchronization. It comes with a text-based user interface (TUI) that runs in almost all terminals and provides a user-friendly way to manage the files you want to synchronize across your *nix machines and users.
Instead of copying the files directly into your home directory, all git repositories and rsync directories are stored along with the configuration file inside each users ~/.hogi/ directory. hogi will then create symlinks in your home directory pointing to these source files. Each source file can be configured and can have its own custom symlink.
The git/rsync sources are grouped into features to allow different pre-configured sets of them.
Sources (git repositories or rsync remote directories) can be linked themselves. This allows to install and update repositories like oh-my-zsh or vim pathogen plugins directly into your home directory.
I wanted a dotfile synchronization tool that…
- shows the magic its doing.
- runs on all *nix environments.
- is easy to install.
- is easy to configure.
- allows different configurations for each user/machine to skip desktop-only files on a server and vice-versa.
- supports rsync for binary files.
Copyright (C) 2016-2018 Mathias Stelzer
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
- hogi 0.4
- 1. Create the app
- 2. Add a Feature
- 3. Add a git repository to the new feature
- 4. Add a file to the new source
- 5. Save your configuration
- 6. Set a remote server
- 7. Push your configuration to the remote server
- 8. Pull your configuration from the remote server
- 9. Generate a delta
- 10. Apply changes to your home directory