pub const UPDATE_LONG_ABOUT: &str = "\
Update Leviath, then offer to bring everything else up to date with it.
The binary is updated with the installer that put it there, which is worked out
from where the file is rather than guessed from the version string (every
channel ships the same version number, so the string cannot tell you):
Homebrew a Cellar path names the formula, and the formula names the
channel: `brew upgrade leviath-beta`
Scoop the same, from the package under scoop/apps
cargo says to run `cargo install leviath-cli` and stops. Updating it
means a long compile, which is not something to start unasked
script re-runs the hosted installer for a channel. The install script
keeps no record of the channel it used, so this defaults to
stable - pass --channel to say otherwise
The blueprints and the config are checked every time, whatever the binary step
did. `brew upgrade` on its own leaves both behind, and a binary that was
already current is not a reason to stop looking: an install can be months
behind on its blueprints with a `lev` that needs no update at all.
Nothing is written to your agents directory without a yes. The whole list is
printed first, then one confirmation covers it; --install-agents is how a
script says yes. --yes alone is not enough, because updating a binary and
replacing the blueprints in your agents directory are different requests. A
copy you edited is named as edited and asked about on its own, and no flag
covers it: installing removes the directory and takes your edits with it.
Config migrations are described line by line before anything is written, and
then asked about.
--check and --json report the plan and change nothing. --dry-run walks the
whole flow, prompts and all, and prints what each step would do instead of
doing it.";Expand description
lev update --help.