2021-12-28 18:30:49 +00:00
|
|
|
# homesync
|
2021-12-29 13:15:19 +00:00
|
|
|
|
2021-12-30 19:17:42 +00:00
|
|
|
**Caution! This is a work in progress and far from complete!**
|
2021-12-29 13:15:19 +00:00
|
|
|
|
|
|
|
## 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 13:15:19 +00:00
|
|
|
|
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`
|
2021-12-29 13:15:19 +00:00
|
|
|
|
|
|
|
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.
|
2021-12-29 13:15:19 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2021-12-30 19:17:42 +00:00
|
|
|
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.
|
2021-12-29 13:15:19 +00:00
|
|
|
|
|
|
|
## Contribution
|
|
|
|
|
|
|
|
Install git hooks as follows:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
git config --local core.hooksPath .githooks/
|
|
|
|
```
|