Implements the broad, read-only schema-backed scan for dot kde diff: walks every (rcfile, group, key) reachable through the kcfg mapping table, compares live values against their schema-declared defaults, and reports each mismatch tagged declared or undeclared. Never writes. Also fixes dot kde completions, which only ever offered save/help — apply (added in a prior task) and diff were both missing.
36 lines
886 B
Fish
36 lines
886 B
Fish
function _dot_kde_usage
|
|
echo "usage: dot kde <command>
|
|
|
|
Commands:
|
|
apply push manifest entries onto the live system
|
|
diff scan for settings whose live value differs from its default
|
|
save write live KDE settings into the manifest
|
|
help show this message
|
|
|
|
Run 'dot kde <command> help' for flags on a specific command."
|
|
end
|
|
|
|
function _dot_kde
|
|
if test "$argv[1]" = help
|
|
_dot_kde_usage
|
|
return 0
|
|
end
|
|
|
|
set -l helper_dir (status dirname)
|
|
|
|
switch "$argv[1]"
|
|
case apply
|
|
python3 $helper_dir/kde.py apply $argv[2..-1]
|
|
return $status
|
|
case diff
|
|
python3 $helper_dir/kde.py diff $argv[2..-1]
|
|
return $status
|
|
case save
|
|
python3 $helper_dir/kde.py save $argv[2..-1]
|
|
return $status
|
|
case '*'
|
|
_dot_kde_usage
|
|
return 1
|
|
end
|
|
end
|