Use the durable Home reset boundary
This commit is contained in:
@@ -396,12 +396,9 @@ Singleton {
|
|||||||
// that only cleared the schema store would silently leave a customised
|
// that only cleared the schema store would silently leave a customised
|
||||||
// favourites list behind while claiming to restore Panama's defaults.
|
// favourites list behind while claiming to restore Panama's defaults.
|
||||||
//
|
//
|
||||||
// Done through HomePreferences' public writable aliases rather than a
|
// HomePreferences owns the write-through boundary so the state file is
|
||||||
// reset function of its own: clearing `favorites` and returning
|
// rewritten before this reset can be considered complete.
|
||||||
// `initialized` to false is exactly the state a fresh install has, and
|
HomePreferences.resetHomeDefaults();
|
||||||
// it lets initialize() seed the list again on next use.
|
|
||||||
HomePreferences.favorites = [];
|
|
||||||
HomePreferences.initialized = false;
|
|
||||||
|
|
||||||
resettleTimer.restart();
|
resettleTimer.restart();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ set -euo pipefail
|
|||||||
|
|
||||||
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
harness="$repo_dir/config/dot/quickshell/settings-system-harness.qml"
|
harness="$repo_dir/config/dot/quickshell/settings-system-harness.qml"
|
||||||
|
system_settings="$repo_dir/config/dot/quickshell/services/SystemSettings.qml"
|
||||||
|
|
||||||
# Preferences are committed to $XDG_CONFIG_HOME, and the Home store lives under
|
# Preferences are committed to $XDG_CONFIG_HOME, and the Home store lives under
|
||||||
# $XDG_STATE_HOME. Both are isolated so this contract cannot touch the real
|
# $XDG_STATE_HOME. Both are isolated so this contract cannot touch the real
|
||||||
@@ -31,6 +32,12 @@ fail() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rg -Fq 'HomePreferences.resetHomeDefaults();' "$system_settings" \
|
||||||
|
|| fail 'restoreDefaults does not use the durable Home reset boundary'
|
||||||
|
if rg -q 'HomePreferences\.(favorites|initialized)\s*=' "$system_settings"; then
|
||||||
|
fail 'restoreDefaults mutates Home aliases instead of using resetHomeDefaults'
|
||||||
|
fi
|
||||||
|
|
||||||
qs_for_harness() {
|
qs_for_harness() {
|
||||||
XDG_CONFIG_HOME="$config_home" XDG_STATE_HOME="$state_home" qs -p "$harness" "$@"
|
XDG_CONFIG_HOME="$config_home" XDG_STATE_HOME="$state_home" qs -p "$harness" "$@"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user