homesync/README.md

75 lines
2.0 KiB
Markdown
Raw Normal View History

2021-12-28 18:30:49 +00:00
# homesync
**Caution! This is a work in progress and far from complete!**
## Introduction
Homesync provides a way of automatically syncing config files across various
applications you may use. It works by establishing a file watcher on all the
configs specified in the primary `homesync` config. As files are changed, they
are copied to a local git repository to eventually be pushed by the user.
Likewise, at any point, the user can sync against the remote repository,
overwriting local configurations for one or more packages.
## Installation
TODO
## Configuration
Homesync uses a YAML file, to be found in anyone of the following locations.
2021-12-29 16:49:24 +00:00
Locations are searched in the following priority:
2021-12-29 16:08:58 +00:00
- `$HOME/.homesync.yml`
2021-12-29 16:49:24 +00:00
- `$HOME/.config/homesync/homesync.yml`
- `$XDG_CONFIG_HOME/homesync.yml`
- `$XDG_CONFIG_HOME/homesync/homesync.yml`
That said, it is recommended to modify this config solely from the exposed
2021-12-29 16:49:24 +00:00
homesync CLI. Homesync will take responsibility ensuring the generated
configuration is according to package manager, platform, etc.
## Usage
Verify your installation by running `homesync` from the command line. If
installed, you will likely want to initialize a new config instance. Do so by
typing:
```bash
$ homesync init
```
You can then walk through what github repository you want to sync your various
files with. You can have homesync automatically monitor all configuration files
and post updates on changes by running
```bash
$ homesync daemon
```
As changes are made to your `homesync` config or any configuration files
referred to within the `homesync` config, the daemon service will sync the
changes to the local git repository. To push these changes upward, run
```bash
$ homesync push --all
```
which will expose a git interface for you to complete the push. Lastly, to sync
the remote configurations to your local files, run
```bash
$ homesync pull --all
```
This will load up a diff wrapper for you to ensure you make the changes you'd
like.
## Contribution
Install git hooks as follows:
```bash
git config --local core.hooksPath .githooks/
```