Skip to main content

kaish_kernel/tools/builtin/
mod.rs

1//! Built-in tools for kaish.
2//!
3//! These tools are always available and provide core functionality.
4
5mod alias;
6mod assert;
7mod awk;
8mod base64_tool;
9mod basename;
10#[cfg(feature = "subprocess")]
11mod bg;
12mod cat;
13mod cd;
14mod checksum;
15mod cp;
16mod cut;
17mod date;
18mod diff;
19mod dirname;
20mod patch;
21mod echo;
22mod env;
23#[cfg(feature = "subprocess")]
24mod exec;
25#[cfg(feature = "subprocess")]
26mod spawn;
27#[cfg(feature = "subprocess")]
28pub use spawn::resolve_in_path;
29mod export;
30#[cfg(feature = "subprocess")]
31mod fg;
32mod glob;
33mod find;
34pub(crate) mod format_string;
35mod gather;
36mod grep;
37mod grep_engine;
38mod rg;
39mod head;
40mod ignore;
41mod help;
42// `hostname` is pure host introspection (reads /proc) — gated behind the host
43// capability. `uname` stays available and reports kaish identity instead.
44#[cfg(feature = "host")]
45mod hostname;
46mod introspect;
47mod jobs;
48mod jq_native;
49mod kaish_ast;
50mod kaish_clear;
51mod kaish_last;
52mod kaish_trash;
53mod kaish_status;
54mod kaish_version;
55mod kill;
56mod ln;
57mod ls;
58mod mkdir;
59mod mktemp;
60mod mv;
61mod output_limit;
62mod printf;
63mod pwd;
64mod read;
65mod readlink;
66mod realpath;
67mod rm;
68mod scatter;
69mod sed;
70mod seq;
71mod split;
72mod set;
73mod sleep;
74mod sort;
75mod stat;
76mod tac;
77mod tail;
78mod tee;
79mod test_builtin;
80mod timeout;
81#[cfg(feature = "tokens")]
82mod tokens;
83mod touch;
84mod tr;
85mod tree;
86mod true_false;
87mod uname;
88mod uniq;
89mod unset;
90mod validate;
91mod vars;
92mod wait;
93mod wc;
94#[cfg(feature = "subprocess")]
95mod which;
96mod write;
97mod xxd;
98
99use super::ToolRegistry;
100
101/// Register all built-in tools with the registry.
102pub fn register_builtins(registry: &mut ToolRegistry) {
103    registry.register(alias::Alias);
104    registry.register(alias::Unalias);
105    registry.register(assert::Assert);
106    registry.register(awk::Awk);
107    registry.register(base64_tool::Base64Tool);
108    registry.register(basename::Basename);
109    #[cfg(feature = "subprocess")]
110    registry.register(bg::Bg);
111    registry.register(cat::Cat);
112    registry.register(cd::Cd);
113    registry.register(checksum::Checksum);
114    registry.register(cp::Cp);
115    registry.register(cut::Cut);
116    registry.register(date::Date);
117    registry.register(diff::Diff);
118    registry.register(dirname::Dirname);
119    registry.register(echo::Echo);
120    registry.register(env::Env);
121    #[cfg(feature = "subprocess")]
122    registry.register(exec::Exec);
123    #[cfg(feature = "subprocess")]
124    registry.register(spawn::Spawn);
125    registry.register(export::Export);
126    #[cfg(feature = "subprocess")]
127    registry.register(fg::Fg);
128    registry.register(glob::Glob);
129    registry.register(find::Find);
130    registry.register(gather::Gather);
131    #[cfg(feature = "git")]
132    registry.register(kaish_tools_git::Git);
133    registry.register(grep::Grep);
134    registry.register(rg::Rg);
135    registry.register(head::Head);
136    registry.register(help::Help);
137    registry.register(ignore::KaishIgnore);
138    #[cfg(feature = "host")]
139    registry.register(hostname::Hostname);
140    registry.register(introspect::Mounts);
141    registry.register(introspect::Tools);
142    registry.register(jobs::Jobs);
143    registry.register(jq_native::JqNative);
144    registry.register(kaish_ast::KaishAst);
145    registry.register(kaish_clear::KaishClear);
146    registry.register(kaish_last::KaishLast);
147    registry.register(kaish_trash::KaishTrash);
148    registry.register(kaish_status::KaishStatus);
149    registry.register(kaish_version::KaishVersion);
150    registry.register(kill::Kill);
151    registry.register(ln::Ln);
152    registry.register(ls::Ls);
153    registry.register(mkdir::Mkdir);
154    registry.register(mktemp::Mktemp);
155    registry.register(mv::Mv);
156    registry.register(output_limit::KaishOutputLimit);
157    registry.register(patch::Patch);
158    registry.register(printf::Printf);
159    #[cfg(all(target_os = "linux", feature = "host"))]
160    registry.register(kaish_tools_host::Ps);
161    registry.register(pwd::Pwd);
162    registry.register(read::Read);
163    registry.register(readlink::Readlink);
164    registry.register(realpath::Realpath);
165    registry.register(rm::Rm);
166    registry.register(scatter::Scatter);
167    registry.register(sed::Sed);
168    registry.register(seq::Seq);
169    registry.register(set::Set);
170    registry.register(split::Split);
171    registry.register(sleep::Sleep);
172    registry.register(sort::Sort);
173    registry.register(stat::Stat);
174    registry.register(tac::Tac);
175    registry.register(tail::Tail);
176    registry.register(tee::Tee);
177    registry.register(test_builtin::Test);
178    registry.register(test_builtin::Bracket);
179    registry.register(timeout::Timeout);
180    #[cfg(feature = "tokens")]
181    registry.register(tokens::Tokens);
182    registry.register(touch::Touch);
183    registry.register(tr::Tr);
184    registry.register(tree::Tree);
185    registry.register(true_false::True);
186    registry.register(true_false::False);
187    registry.register(uname::Uname);
188    registry.register(uniq::Uniq);
189    registry.register(unset::Unset);
190    registry.register(validate::Validate);
191    registry.register(vars::Vars);
192    registry.register(wait::Wait);
193    registry.register(wc::Wc);
194    #[cfg(feature = "subprocess")]
195    registry.register(which::Which);
196    registry.register(write::Write);
197    registry.register(xxd::Xxd);
198}