feat: soar module (#413)

* feat: `soar` module

* fix(soar): Inverted `unlock-repos` logic

* chore(soar): Add `soar` to modules.json

* fix(soar): Logic for detecting if `unlock-repos` is disabled

* fix(docs): Wrong `/usr/` systemd path reference

* chore(soar): Add log for `unlock_repos`

* chore(soar): Add `finished=false` at the beggining of `soar` shell profile

* fix(soar): `/root` being `$HOME` in config

* fix(soar): Wrong `PATH`

I forgot to add `bin` directory

* docs(soar): Clarify that `PATH` needs to be exported only outside of standard config dir

* chore(soar): Unlock extra repos if `unlock-repos` is enabled

* docs(soar): Mention of external repos

* chore(soar): Simplify getting `XDG` directories

* chore(soar): Add removing config in uninstallation script

* chore(soar): Remove whole config directory instead of file in uninstallation script

* fix(soar): Missing quote in uninstallation script

* chore(soar): Make uninstallation script POSIX

* fix(soar): Bad syntax for `soar-upgrade-packages` service `exec`

It's `ExecStart`, not `Exec`.

* fix(soar): Set `auto-upgrade` timer as `--user` instead of `--system`

* chore(soar): Shorten the boot delay & randomize it for `auto-upgrades`

* chore(soar): Add `network-online.target` in `Wants` to systemd service for `auto-upgrades`

* chore(soar): Remove `upgrade-wait-after-boot`, as good defaults are set with no need for changing

* chore(soar): Add option for unlocking the `PATH` in all conditions

* chore(soar): Add `unlock-path` option to typespec

* docs(soar): Add `unlock-path` to `module.yml` example

* chore(soar): Remove condition for checking the `soar.sh` file

If another `soar` module overwrites the previous one, it should be able to overwrite `soar.sh` shell profile too with custom option if set.

* chore(soar): Remove `unlock-path`, as it's too dangerous

* chore(soar): Don't copy update timer & service if `auto-upgrade` is false

* chore(soar): Style fix

* chore(soar): Don't execute `upgrade` when soar is already running

* chore(soar): Use environment variable for `SOAR_CONFIG` to simplify things

* docs(sour): Fix typo

* chore(soar): Use native `soar` command for setting `bincache` repo only

* fix(soar): Make `soar` condition check for  auto-upgrades more reliable

* chore(soar): Some more improvements to auto-update condition check

False positive can happen if some text editor edits some file like `soar-something.txt` or similar.

This assures more that only executed binary is detected.

* chore(soar): Remove duplicate code for setting config

* docs(soar): Add full example of options in `module.yml`

* chore(soar): Rename `unlock-repos` to `additional-repos` & add docs about repo info

* chore(soar): Enable `pkforge-cargo` & `pkgforge-go` repos

* docs: rewordings, run through languagetool

* chore(soar): Add condition in shell profile to check if `soar` PATH already exists

* chore(soar): Disable redundant shellcheck SC2076 in shell profile

* docs: final reword

---------

Co-authored-by: xyny <git@xyny.anonaddy.me>
Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
This commit is contained in:
fiftydinar 2025-07-26 16:10:21 +02:00 committed by GitHub
parent a639f1f64f
commit 23f020a5b3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 186 additions and 0 deletions

View file

@ -4,6 +4,7 @@
"https://raw.githubusercontent.com/blue-build/modules/main/modules/chezmoi/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/bling/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/brew/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/soar/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/default-flatpaks/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/fonts/module.yml",
"https://raw.githubusercontent.com/blue-build/modules/main/modules/gnome-extensions/module.yml",