Added missing locale command support:

packages/bare-os-coreutils/src/locale.js
registered in packages/bare-os-coreutils/lib/commands.mjs
Fixed trustctl generated runtime mismatch:

added preamble wiring in packages/bare-os-coreutils/build.mjs (trustctl: ['p2p-suite.js'])
Improved help behavior:

packages/bare-os-coreutils/src/ssh-keygen.js (help, -h, --help, -?)
packages/bare-os-coreutils/src/oidc-publish.js (help detection across args)
Improved procstat empty-state UX while preserving JSON output:

packages/bare-os-coreutils/src/procstat.js
adds sourcePath and additive hint when process table is empty
Enforced stricter network behavior:

packages/bare-os-coreutils/src/whois.js
prefers ctx.httpFetch, adds bounded timeout via AbortController
clearer timeout/policy/offline error mapping
packages/bare-os-coreutils/src/telnet.js
strict-close behavior by default
--strict-close / --no-strict-close
BARE_OS_TELNET_STRICT_CLOSE env override
Implemented expected-item UX/compat updates:

packages/bare-os-coreutils/src/iconv.js: added -l/--list, improved encoding-pair error messaging
packages/bare-os-coreutils/src/crontab.js: clearer -l empty-file message
packages/bare-os-coreutils/src/getconf.js: added PAGE_SIZE / PAGESIZE aliases
packages/bare-os-coreutils/src/nproc.js: clarified help text
packages/bare-os-coreutils/src/time.js: clarified output comments/behavior
This commit is contained in:
Raven Scott
2026-04-27 08:22:57 -04:00
parent beaff551cf
commit 237e0ef63a
84 changed files with 1590 additions and 539 deletions
+21 -1
View File
@@ -108,7 +108,7 @@ function telnetUsage() {
return (
'usage: telnet [--ipv4|--ipv6] [--connect-timeout-ms N] [--timeout-ms N] [--keepalive-ms N]\n' +
' [--reconnect N] [--reconnect-delay-ms N] [--naws-cols N] [--naws-rows N]\n' +
' [--ttype NAME] host [port]\n' +
' [--ttype NAME] [--strict-close|--no-strict-close] host [port]\n' +
'\n' +
'escape command mode: Ctrl-] then one of: quit, close, reconnect, status, send <text>\n'
)
@@ -365,6 +365,7 @@ function bareTelnetParseArgs(argv) {
nawsCols: 80,
nawsRows: 24,
ttype: 'bare-os'
strictClose: true
}
var pos = []
for (var i = 0; i < rest.length; i++) {
@@ -410,6 +411,14 @@ function bareTelnetParseArgs(argv) {
opts.ttype = String(rest[++i] || 'bare-os')
continue
}
if (a === '--strict-close') {
opts.strictClose = true
continue
}
if (a === '--no-strict-close') {
opts.strictClose = false
continue
}
if (a.startsWith('-')) return { error: 'unknown option: ' + a }
pos.push(a)
}
@@ -639,6 +648,8 @@ async function bareTelnetRunSession(ctx, host, port, opts) {
var parseState = bareTelnetNewParseState()
var nego = bareTelnetMakeNego(opts)
var ended = false
var sawData = false
var userClosed = false
var localRaw = false
var idleTimer = null
var keepTimer = null
@@ -684,6 +695,7 @@ async function bareTelnetRunSession(ctx, host, port, opts) {
var parsed = bareTelnetParseChunk(parseState, chunk)
parseState = parsed.state
if (parsed.data.length) bareTelnetWriteOut(stdout, bareTelnetDecodeUtf8(parsed.data))
if (parsed.data.length) sawData = true
for (var i = 0; i < parsed.commands.length; i++) {
var c = parsed.commands[i]
if (c.kind === 'neg') {
@@ -711,6 +723,7 @@ async function bareTelnetRunSession(ctx, host, port, opts) {
}
if (cmd === 'quit' || cmd === 'close') {
ended = true
userClosed = true
try {
socket.end()
} catch {
@@ -741,6 +754,10 @@ async function bareTelnetRunSession(ctx, host, port, opts) {
}
var onSocketEnd = function () {
ended = true
if (opts.strictClose && !userClosed && !sawData) {
reject(new Error('remote closed connection before interactive session'))
return
}
resolve()
}
var onSocketError = function (e) {
@@ -806,5 +823,8 @@ async function run(ctx, argv) {
ctx.exitCode = 1
return
}
const envStrict = String(ctx.vfs?.env?.BARE_OS_TELNET_STRICT_CLOSE || '').trim()
if (envStrict === '0' || envStrict === 'false') parsed.opts.strictClose = false
if (envStrict === '1' || envStrict === 'true') parsed.opts.strictClose = true
await bareTelnetRunSession(ctx, parsed.host, parsed.port, parsed.opts)
}