Commit Graph
13 Commits
Author SHA1 Message Date
davidandClaude Opus 5.5 54f9e12526 Log each install and update, and keep only the recent logs
shellcheck / shellcheck (push) Failing after 17s
Each run's output now goes to ~/.local/state/coredesktop/logs/, so what
failed can be read after the terminal is gone. In a terminal, update runs
itself under script(1), so everything it runs still sees a terminal, then
strips color codes and progress redraws from the log; otherwise it uses
tee. install.sh, usually piped into bash, uses tee, and runs configure
straight on the terminal, outside the log. Both name the log when
something fails. 95-cleanup.sh keeps the newest 10 update logs and 3
install logs.

The sudo keepalive loops no longer share the logged output, so their
sleep can't hold the log open after the run ends.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 11:00:31 -07:00
davidandClaude Opus 5.5 b2a16471fd update: hand over cleanly from updates older than 2026-10-19
013acac's update (in use 2026-08-14 to 2026-10-19) copies the new update
over itself with sudo cp while bash is still reading it, so bash reads on
from byte 1484 of the new file: today, the middle of the logo, and the
update dies with a syntax error. Put a line at exactly that byte that
execs the new update, in a here-document a normal run skips. Found by
30-upgrade-from-baseline at ca658dc; the test replays 013acac's update.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 14:00:59 -07:00
davidandClaude Opus 5.5 101261bd9b update: a failing hook without run_update fails the update
shellcheck / shellcheck (push) Failing after 17s
Since a65f07c ran each hook in a subshell, a hook that does its work as
it's sourced (12-migrations, 15-services, 20-aur, 30-flatpak and others)
had its failure lost: the run_update check after source left the
subshell's status at 0, so update said "Done." and exited 0. The smoketest's
40-failing-migration caught it. update now exits the subshell with the
sourced hook's status.

Also, the smoketest scenarios that check whether a migration ran look for
"Running migration " so install.sh's "Running migrations..." heading
doesn't match (11-refresh failed on it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 08:39:54 -07:00
david 27115f8245 trim down install, tighten sshd 2026-10-31 07:23:08 -06:00
david f00865b5ac fix sonarr and create audit 2026-10-27 10:31:00 -06:00
david bbd6b83f64 Add the configure app 2026-10-26 15:16:53 -06:00
david c27354df20 add the version script 2026-10-26 10:42:26 -06:00
david 0905f858a9 numerous updates 2026-10-21 08:33:19 -06:00
david d8d93a45b5 remove interactivity 2026-10-20 07:30:04 -06:00
davidandClaude Opus 5.5 76fceee115 Add sibling command for installing and updating sibling projects
`sibling` asks for a git URL, clones the repo into
~/.local/share/siblings/<name>, runs its install.sh and confirms the
install. `sibling list` and `sibling remove` manage installed siblings.

updates.d/71-siblings.sh pulls every sibling during `update` and runs
its update.sh, reporting failures in the update summary.

Document the sibling contract in skills/sibling-project-format.md and
update the custom-hook guide to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:23:58 -06:00
david f10463b89c More fixes for update 2026-10-19 14:01:00 -06:00
david a65f07c22e fix update 2026-10-19 13:56:54 -06:00
david 013acac303 update and refresh 2026-08-14 05:45:29 -06:00