Drop Lazydocker from new installs (#14230)
* Drop Lazydocker from new installs * Preserve Lazydocker during Quattro upgrades * Remove Lazydocker from the manual
This commit is contained in:
1 parent
454b67d95f
commit
5657a91f8d
14 files changed
+80
-23
No files matched your search
@@ -20,9 +20,9 @@ trap 'rm -rf "$test_dir"' EXIT
|
||||
home="$test_dir/home"
|
||||
omarchy_path="$test_dir/omarchy"
|
||||
stub_bin="$test_dir/bin"
|
||||
mkdir -p "$home/.local/share/applications" "$omarchy_path/applications" "$stub_bin"
|
||||
mkdir -p "$home/.local/share/applications" "$omarchy_path/default/applications" "$stub_bin"
|
||||
|
||||
printf 'NEW-LAUNCHER\n' >"$omarchy_path/applications/Docker.desktop"
|
||||
printf 'NEW-LAUNCHER\n' >"$omarchy_path/default/applications/Docker.desktop"
|
||||
printf 'OLD-LAUNCHER\n' >"$home/.local/share/applications/Docker.desktop"
|
||||
|
||||
# id reports a controllable group set; sudo just drops the prefix; gpasswd
|
||||
|
||||
@@ -175,6 +175,22 @@ if grep -Fq $'SUPER + CTRL + X Toggle dictation' <<<"$missing_voxtype_output"; t
|
||||
fi
|
||||
pass "missing Voxtype skips dictation bindings"
|
||||
|
||||
# Lazydocker is optional on new installs, while existing installs keep the hotkey.
|
||||
lazydocker_bin="$tmpdir/lazydocker-bin"
|
||||
mkdir -p "$lazydocker_bin"
|
||||
touch "$lazydocker_bin/lazydocker"
|
||||
chmod +x "$lazydocker_bin/lazydocker"
|
||||
lazydocker_output=$(PATH="$lazydocker_bin:$PATH" run_application_bindings "$fresh_home")
|
||||
grep -Fqx $'SUPER + SHIFT + D\tDocker' <<<"$lazydocker_output" ||
|
||||
fail "installed Lazydocker keeps its Docker shortcut"
|
||||
pass "installed Lazydocker keeps its Docker shortcut"
|
||||
|
||||
missing_lazydocker_output=$(PATH="$missing_bin" run_application_bindings "$fresh_home")
|
||||
if grep -Fq $'SUPER + SHIFT + D\tDocker' <<<"$missing_lazydocker_output"; then
|
||||
fail "missing Lazydocker skips its Docker shortcut"
|
||||
fi
|
||||
pass "missing Lazydocker skips its Docker shortcut"
|
||||
|
||||
# The Grave shortcuts are aliases, so the original SUPER + S pair has to keep
|
||||
# working alongside them.
|
||||
scratchpad_home="$tmpdir/scratchpad-home"
|
||||
|
||||
@@ -363,3 +363,46 @@ reboot_line=$(grep -n 'Rebooting because --reboot was passed' "$upgrade_to_quatt
|
||||
[[ -n $unsafe_line && -n $reboot_line ]] || fail "reboot gate and reboot branch exist"
|
||||
(( unsafe_line < reboot_line )) || fail "an unverified kernel cmdline blocks the reboot"
|
||||
pass "Omarchy 4 upgrade verifies the UKIs and refuses to reboot unverified"
|
||||
|
||||
# Lazydocker is optional on fresh installs, but a pre-quattro install keeps it.
|
||||
lazydocker_body=$(function_body migrate_lazydocker_package)
|
||||
[[ -n $lazydocker_body ]] || fail "upgrade has a Lazydocker replacement step"
|
||||
eval "migrate_lazydocker_package() { $lazydocker_body; }"
|
||||
lazydocker_calls=""
|
||||
package_installed_exact() { [[ $1 == "lazydocker-bin" && $legacy_lazydocker == "yes" ]]; }
|
||||
log() { :; }
|
||||
warn() { :; }
|
||||
as_root() {
|
||||
lazydocker_calls+="swap:$*"$'\n'
|
||||
return "$lazydocker_swap_status"
|
||||
}
|
||||
mark_packages_explicit() { lazydocker_calls+="explicit:$*"$'\n'; }
|
||||
|
||||
legacy_lazydocker=no
|
||||
lazydocker_swap_status=0
|
||||
migrate_lazydocker_package
|
||||
[[ -z $lazydocker_calls ]] || fail "upgrade does not install Lazydocker for users without the legacy package"
|
||||
pass "upgrade does not install Lazydocker for users without the legacy package"
|
||||
|
||||
legacy_lazydocker=yes
|
||||
migrate_lazydocker_package
|
||||
grep -Fxq 'swap:pacman -S --needed --noconfirm --ask 4 lazydocker' <<<"$lazydocker_calls" ||
|
||||
fail "upgrade replaces existing lazydocker-bin with lazydocker"
|
||||
grep -Fxq 'explicit:lazydocker' <<<"$lazydocker_calls" || fail "upgrade retains Lazydocker as an explicit package"
|
||||
pass "upgrade replaces existing lazydocker-bin with lazydocker and keeps it explicit"
|
||||
|
||||
lazydocker_calls=""
|
||||
lazydocker_swap_status=1
|
||||
migrate_lazydocker_package
|
||||
if grep -Fq 'explicit:' <<<"$lazydocker_calls"; then
|
||||
fail "failed Lazydocker replacement does not mark an absent package explicit"
|
||||
fi
|
||||
for cleanup in remove_conflicting_legacy_packages remove_retired_default_packages; do
|
||||
if grep -qw lazydocker-bin <<<"$(function_body "$cleanup")"; then
|
||||
fail "upgrade cleanup must not remove existing Lazydocker when replacement fails"
|
||||
fi
|
||||
done
|
||||
pass "upgrade cleanup preserves existing Lazydocker when replacement fails"
|
||||
|
||||
grep -Fxq migrate_lazydocker_package "$upgrade_to_quattro" || fail "upgrade invokes the Lazydocker replacement step"
|
||||
pass "upgrade invokes the Lazydocker replacement step"
|
||||
Reference in new issue
Block a user