host: process table, shell, coreutils and harness (T8, T9)
T8: sausage:process WIT (spawn, wait, kill), one store per process over the shared root, /proc/processes, /run, pipeline and cancellation groups, Exec. brush and 78 uutils commands; the shared cwd-init object sets the cwd from PWD and keeps numeric exit codes. The corpus matches native bash. T9: V8 (deno_core) runs pi-durable, pi-ai and chord; SQLite storage in <dir>/host/harness.sqlite (WAL, synchronous=FULL); file tools on the VFS, bash through Exec; resumes after SIGKILL.
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
[package]
|
||||
name = "sausage-coreutils"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
rustix = { version = "1.1.6", features = ["std"] }
|
||||
uucore = "=0.12.0"
|
||||
uu_arch = "=0.12.0"
|
||||
uu_base32 = "=0.12.0"
|
||||
uu_base64 = "=0.12.0"
|
||||
uu_basename = "=0.12.0"
|
||||
uu_basenc = "=0.12.0"
|
||||
uu_cat = "=0.12.0"
|
||||
uu_cksum = "=0.12.0"
|
||||
uu_b2sum = "=0.12.0"
|
||||
uu_md5sum = "=0.12.0"
|
||||
uu_nice = "=0.12.0"
|
||||
uu_sha1sum = "=0.12.0"
|
||||
uu_sha224sum = "=0.12.0"
|
||||
uu_sha256sum = "=0.12.0"
|
||||
uu_sha384sum = "=0.12.0"
|
||||
uu_sha512sum = "=0.12.0"
|
||||
uu_comm = "=0.12.0"
|
||||
uu_cp = "=0.12.0"
|
||||
uu_csplit = "=0.12.0"
|
||||
uu_cut = "=0.12.0"
|
||||
uu_date = "=0.12.0"
|
||||
uu_dd = "=0.12.0"
|
||||
uu_dir = "=0.12.0"
|
||||
uu_dircolors = "=0.12.0"
|
||||
uu_dirname = "=0.12.0"
|
||||
uu_echo = "=0.12.0"
|
||||
uu_expand = "=0.12.0"
|
||||
uu_expr = "=0.12.0"
|
||||
uu_factor = "=0.12.0"
|
||||
uu_false = "=0.12.0"
|
||||
uu_fmt = "=0.12.0"
|
||||
uu_fold = "=0.12.0"
|
||||
uu_head = "=0.12.0"
|
||||
uu_hostid = "=0.12.0"
|
||||
uu_join = "=0.12.0"
|
||||
uu_link = "=0.12.0"
|
||||
uu_ln = "=0.12.0"
|
||||
uu_ls = "=0.12.0"
|
||||
uu_mkdir = "=0.12.0"
|
||||
uu_mktemp = "=0.12.0"
|
||||
uu_mv = "=0.12.0"
|
||||
uu_nl = "=0.12.0"
|
||||
uu_numfmt = "=0.12.0"
|
||||
uu_od = "=0.12.0"
|
||||
uu_paste = "=0.12.0"
|
||||
uu_pathchk = "=0.12.0"
|
||||
uu_pr = "=0.12.0"
|
||||
uu_printenv = "=0.12.0"
|
||||
uu_printf = "=0.12.0"
|
||||
uu_ptx = "=0.12.0"
|
||||
uu_pwd = "=0.12.0"
|
||||
uu_readlink = "=0.12.0"
|
||||
uu_realpath = "=0.12.0"
|
||||
uu_rm = "=0.12.0"
|
||||
uu_rmdir = "=0.12.0"
|
||||
uu_seq = "=0.12.0"
|
||||
uu_shred = "=0.12.0"
|
||||
uu_shuf = "=0.12.0"
|
||||
uu_sleep = "=0.12.0"
|
||||
uu_sort = "=0.12.0"
|
||||
uu_split = "=0.12.0"
|
||||
uu_sum = "=0.12.0"
|
||||
uu_tail = "=0.12.0"
|
||||
uu_tee = "=0.12.0"
|
||||
uu_test = "=0.12.0"
|
||||
uu_touch = "=0.12.0"
|
||||
uu_tr = "=0.12.0"
|
||||
uu_true = "=0.12.0"
|
||||
uu_truncate = "=0.12.0"
|
||||
uu_tsort = "=0.12.0"
|
||||
uu_tty = "=0.12.0"
|
||||
uu_uname = "=0.12.0"
|
||||
uu_unexpand = "=0.12.0"
|
||||
uu_uniq = "=0.12.0"
|
||||
uu_unlink = "=0.12.0"
|
||||
uu_vdir = "=0.12.0"
|
||||
uu_wc = "=0.12.0"
|
||||
uu_yes = "=0.12.0"
|
||||
uu_nproc = "=0.12.0"
|
||||
@@ -0,0 +1,98 @@
|
||||
//! Dispatches the portable uutils 0.12 multicall component by argv[0].
|
||||
fn main() {
|
||||
let argv0 = std::env::args().next().unwrap();
|
||||
let name = std::path::Path::new(&argv0)
|
||||
.file_name()
|
||||
.unwrap()
|
||||
.to_str()
|
||||
.unwrap();
|
||||
let name = if name == "[" { "test" } else { name };
|
||||
let locale = match name {
|
||||
"dir" | "vdir" => "ls",
|
||||
_ => name,
|
||||
};
|
||||
uucore::locale::setup_localization(locale).expect("utility supplies localization");
|
||||
let args = uucore::args_os();
|
||||
let code = match name {
|
||||
"arch" => uu_arch::uumain(args),
|
||||
"base32" => uu_base32::uumain(args),
|
||||
"base64" => uu_base64::uumain(args),
|
||||
"basename" => uu_basename::uumain(args),
|
||||
"basenc" => uu_basenc::uumain(args),
|
||||
"cat" => uu_cat::uumain(args),
|
||||
"cksum" => uu_cksum::uumain(args),
|
||||
"b2sum" => uu_b2sum::uumain(args),
|
||||
"md5sum" => uu_md5sum::uumain(args),
|
||||
"nice" => uu_nice::uumain(args),
|
||||
"sha1sum" => uu_sha1sum::uumain(args),
|
||||
"sha224sum" => uu_sha224sum::uumain(args),
|
||||
"sha256sum" => uu_sha256sum::uumain(args),
|
||||
"sha384sum" => uu_sha384sum::uumain(args),
|
||||
"sha512sum" => uu_sha512sum::uumain(args),
|
||||
"comm" => uu_comm::uumain(args),
|
||||
"cp" => uu_cp::uumain(args),
|
||||
"csplit" => uu_csplit::uumain(args),
|
||||
"cut" => uu_cut::uumain(args),
|
||||
"date" => uu_date::uumain(args),
|
||||
"dd" => uu_dd::uumain(args),
|
||||
"dir" => uu_dir::uumain(args),
|
||||
"dircolors" => uu_dircolors::uumain(args),
|
||||
"dirname" => uu_dirname::uumain(args),
|
||||
"echo" => uu_echo::uumain(args),
|
||||
"expand" => uu_expand::uumain(args),
|
||||
"expr" => uu_expr::uumain(args),
|
||||
"factor" => uu_factor::uumain(args),
|
||||
"false" => uu_false::uumain(args),
|
||||
"fmt" => uu_fmt::uumain(args),
|
||||
"fold" => uu_fold::uumain(args),
|
||||
"head" => uu_head::uumain(args),
|
||||
"hostid" => uu_hostid::uumain(args),
|
||||
"join" => uu_join::uumain(args),
|
||||
"link" => uu_link::uumain(args),
|
||||
"ln" => uu_ln::uumain(args),
|
||||
"ls" => uu_ls::uumain(args),
|
||||
"mkdir" => uu_mkdir::uumain(args),
|
||||
"mktemp" => uu_mktemp::uumain(args),
|
||||
"mv" => uu_mv::uumain(args),
|
||||
"nl" => uu_nl::uumain(args),
|
||||
"numfmt" => uu_numfmt::uumain(args),
|
||||
"od" => uu_od::uumain(args),
|
||||
"paste" => uu_paste::uumain(args),
|
||||
"pathchk" => uu_pathchk::uumain(args),
|
||||
"pr" => uu_pr::uumain(args),
|
||||
"printenv" => uu_printenv::uumain(args),
|
||||
"printf" => uu_printf::uumain(args),
|
||||
"ptx" => uu_ptx::uumain(args),
|
||||
"pwd" => uu_pwd::uumain(args),
|
||||
"readlink" => uu_readlink::uumain(args),
|
||||
"realpath" => uu_realpath::uumain(args),
|
||||
"rm" => uu_rm::uumain(args),
|
||||
"rmdir" => uu_rmdir::uumain(args),
|
||||
"seq" => uu_seq::uumain(args),
|
||||
"shred" => uu_shred::uumain(args),
|
||||
"shuf" => uu_shuf::uumain(args),
|
||||
"sleep" => uu_sleep::uumain(args),
|
||||
"sort" => uu_sort::uumain(args),
|
||||
"split" => uu_split::uumain(args),
|
||||
"sum" => uu_sum::uumain(args),
|
||||
"tail" => uu_tail::uumain(args),
|
||||
"tee" => uu_tee::uumain(args),
|
||||
"test" => uu_test::uumain(args),
|
||||
"touch" => uu_touch::uumain(args),
|
||||
"tr" => uu_tr::uumain(args),
|
||||
"true" => uu_true::uumain(args),
|
||||
"truncate" => uu_truncate::uumain(args),
|
||||
"tsort" => uu_tsort::uumain(args),
|
||||
"tty" => uu_tty::uumain(args),
|
||||
"uname" => uu_uname::uumain(args),
|
||||
"unexpand" => uu_unexpand::uumain(args),
|
||||
"uniq" => uu_uniq::uumain(args),
|
||||
"unlink" => uu_unlink::uumain(args),
|
||||
"vdir" => uu_vdir::uumain(args),
|
||||
"wc" => uu_wc::uumain(args),
|
||||
"yes" => uu_yes::uumain(args),
|
||||
"nproc" => uu_nproc::uumain(args),
|
||||
_ => 127,
|
||||
};
|
||||
std::process::exit(code);
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
arch
|
||||
base32
|
||||
base64
|
||||
basename
|
||||
basenc
|
||||
cat
|
||||
cksum
|
||||
b2sum
|
||||
md5sum
|
||||
nice
|
||||
sha1sum
|
||||
sha224sum
|
||||
sha256sum
|
||||
sha384sum
|
||||
sha512sum
|
||||
comm
|
||||
cp
|
||||
csplit
|
||||
cut
|
||||
date
|
||||
dd
|
||||
dir
|
||||
dircolors
|
||||
dirname
|
||||
echo
|
||||
expand
|
||||
expr
|
||||
factor
|
||||
false
|
||||
fmt
|
||||
fold
|
||||
head
|
||||
hostid
|
||||
join
|
||||
link
|
||||
ln
|
||||
ls
|
||||
mkdir
|
||||
mktemp
|
||||
mv
|
||||
nl
|
||||
numfmt
|
||||
od
|
||||
paste
|
||||
pathchk
|
||||
pr
|
||||
printenv
|
||||
printf
|
||||
ptx
|
||||
pwd
|
||||
readlink
|
||||
realpath
|
||||
rm
|
||||
rmdir
|
||||
seq
|
||||
shred
|
||||
shuf
|
||||
sleep
|
||||
sort
|
||||
split
|
||||
sum
|
||||
tail
|
||||
tee
|
||||
test
|
||||
touch
|
||||
tr
|
||||
true
|
||||
truncate
|
||||
tsort
|
||||
tty
|
||||
uname
|
||||
unexpand
|
||||
uniq
|
||||
unlink
|
||||
vdir
|
||||
wc
|
||||
yes
|
||||
nproc
|
||||
Reference in New Issue
Block a user