-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Detect unison failure: unison doctor command? #163
Comments
I am in the midst of a refactor of the project_sync to support this, repurposing the sync init detection to be available as part of a check command in addition to sync:start |
Follow-up Enhnacement: Background Monitoring & Failure ActionsThis will be pursued as a follow-up task. Initially capturing it here so the full context of the goal is present.
An additional flag like --purge-on-fail/--fire-bazooka/--walk-the-plank should run the sync:purge command if the check fails, and can be paired with the --restart-on-fail. These restart flags depend on the sync:check being very reliable, something which really hasn't been tested yet. The secret to starting the background command will be to use os/exec Start() with |
In #147, we have acknowledged silent unison failures are a problem.
This issue splits off checking if the unison process for a given project is in working order.
This issue has a secondary goal: providing enough information about the state of failing systems to provide clues on what's going wrong. To that effect we might have a follow-on issue that extends
--verbose
with additional data to facilitate troubleshooting.Checks
Things to check/potentially check:
Usage
Running this command might look like
rig project sync:check
.Background Notifications
By ensuring notifications are triggered for error but not for success, we could also support:
cd ~/path/to/project && rig project sync:check > /dev/null 2>&1
We could put that on a schedule, document how to add it to cron, etc, and give desktop notifications to users when their are unison failures. It might be worth simplifying to the point where we sort out how to fork a process into the background implemented in golang if we need an ongoing monitor.
The text was updated successfully, but these errors were encountered: