Router discovers plugin command directories #17
Labels
No labels
approved
bug
changes-requested
ci
decision
declined
discuss
docs
feature
meta
now
packaging
refactor
release
repo/core
repo/krystal
repo/plugins
repo/themes
status/backlog
status/in-progress
status/next
status/review
ux
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
joshquinlan/donbox#17
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Glob DONBOX_PATH/bin then every enabled plugin's bin; help generated from headers; commands --check covers all.
Done on branch
coreas cd79cf5.The router globs
$DONBOX_PATH/binand then thebin/of everyenabled plugin, from
$DONBOX_PATH/plugins/*/and${XDG_DATA_HOME:-~/.local/share}/donbox/plugins/*/, withduplicate roots collapsed. A plugin is a directory with a
plugin.toml; enablement comes from~/.config/donbox/plugins.lua, read with luajit or lua, where alisted id is enabled and a first-party plugin under DONBOX_PATH
is enabled unless it appears in the
disabledtable. A file nointerpreter can read is treated as absent, so a broken or
unreadable plugins.lua leaves the first-party set whole and
enables nothing new; both are tested.
Longest-prefix routing now runs across every directory, so the
checkout keeps a route a plugin also claims and
donbox commands --checknames both binaries. Metadata still comes from the# donbox:header, now scanned over the first 80 lines, and thelisting is generated from it, grouped by first word, with the
group blurb taken from the summary of the command the group is
named after.
donbox commands --jsonprints the same metadata.Not yet implemented from the header table in .claude/rules/bin.md:
name,alias/aliases,examplesandrequires-sudo.Integrated on master (
dd951a0): router discovers plugin bin/ dirs via lib/plugins.sh and ~/.config/donbox/plugins.lua, commands --check and --json, help from headers. Deferred: name, alias, examples and requires-sudo header keys.