feat(services): add services_repo_force and compact refresh output

Force-reset repo clones on the automatic TTL refresh when enabled. Report refresh changes as one +/~/-/!TAG line per repo.
This commit is contained in:
imSp4rky
2026-08-26 22:15:39 -06:00
parent 97c939630c
commit 4964869258
8 changed files with 36 additions and 34 deletions
@@ -67,6 +67,15 @@ directories:
`unshackle util refresh-services` command instead **hard-resets** the clone to upstream,
discarding any local edits.
Set `services_repo_force: true` to make the automatic 24 h refresh behave like
`refresh-services`. When a refresh is due, the run fetches and hard-resets every clone,
and discards any local edits in `_repos/`. Runs between refreshes do not touch the
network. Use it on unattended hosts where nobody edits the clones by hand.
```yaml
services_repo_force: true
```
!!! warning "Read-only installs and reinstalls"
If the services directory lives inside the installed package, a reinstall can delete the
`_repos` clones. They are re-cloned on next use. On **read-only installs** you must
+1 -1
View File
@@ -29,7 +29,7 @@ Where the file lives, how unshackle discovers it, and how to edit it:
| Area | Keys |
|------|------|
| [Directories](directories.md) | `directories`, `filenames` |
| [Directories](directories.md) | `directories`, `filenames`, `services_repo_force` |
| [Services & authentication](services.md) | `services`, `credentials`, `firefox_cookies`, `remote_services`, `serve` |
| [Download & processing](download.md) | `dl`, `continue_downloads`, `subtitle`, `audio`, `muxing`, `language_tags`, `dual_multi_mode` |
| [Output & naming](output.md) | `output_template`, `tag`, `tag_rules`, `tag_group_name`, `tag_imdb_tmdb`, `chapter_fallback_name`, `unicode_filenames` |