feat(logging): add C5 --on-variable event handlers for real-time sync

This commit is contained in:
2026-06-10 21:28:13 -04:00
parent f17229d0b8
commit 0382d6ab9c
2 changed files with 45 additions and 0 deletions
@@ -0,0 +1,21 @@
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# __fish_config_logging_changed
#
# DESCRIPTION
# Event handler that fires in every running shell when
# __fish_config_op_logging is set or erased. Delegates to
# __fish_config_sync_logging to update the Kitty sentinel file and
# paru/yay wrappers immediately without requiring a shell restart.
#
# RETURNS
# 0 Always
#
# EXAMPLE
# set -U __fish_config_op_logging 0 # triggers this automatically
function __fish_config_logging_changed --on-variable __fish_config_op_logging \
--description 'C5 event handler: sync logging state when __fish_config_op_logging changes'
__fish_config_sync_logging
end
@@ -0,0 +1,24 @@
# Copyright (C) 2026 Rootiest
# SPDX-License-Identifier: AGPL-3.0-or-later
# SYNOPSIS
# __fish_config_opinionated_changed
#
# DESCRIPTION
# Event handler that fires in every running shell when
# __fish_config_opinionated (the master opinionated switch) is set or
# erased. Delegates to __fish_config_sync_logging to keep C5 logging
# state in sync. Logging is the only category with external on-disk
# state (sentinel file, wrapper scripts) that requires real-time
# synchronisation when the master variable changes; C1-C4 guards
# evaluate at call-time and need no event handler.
#
# RETURNS
# 0 Always
#
# EXAMPLE
# set -U __fish_config_opinionated 0 # triggers this automatically
function __fish_config_opinionated_changed --on-variable __fish_config_opinionated \
--description 'C5 event handler: sync logging state when master opinionated switch changes'
__fish_config_sync_logging
end