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
+1 -1
View File
@@ -781,7 +781,7 @@ git-pull every service repository configured under `directories.services`. `refr
{
"refreshed": true,
"repos": [
{ "spec": "github.com/example/services", "updated": true, "changes": ["a1b2c3d Update EXAMPLE"] }
{ "spec": "github.com/example/services", "updated": true, "changes": ["~EXAMPLE"] }
]
}
```
@@ -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` |