Updates
This commit is contained in:
+58
-3
@@ -60,13 +60,68 @@ function barePosixBlocks(size) {
|
||||
return Math.ceil(Number(size) / 512) || 0
|
||||
}
|
||||
|
||||
/**
|
||||
* Subset of POSIX.1-2017 getconf — fixed values for Bare OS (no host sysconf).
|
||||
* Unknown names exit with status 1 (matches common getconf for invalid var).
|
||||
*/
|
||||
|
||||
const CONF = {
|
||||
PATH_MAX: '4096',
|
||||
NAME_MAX: '255',
|
||||
/** POSIX minimum for ARG_MAX; Bare uses a conservative cap for runBinCommand argv. */
|
||||
_POSIX_ARG_MAX: '4096',
|
||||
ARG_MAX: '262144',
|
||||
LINE_MAX: '2048',
|
||||
/** POSIX.1-2008 */
|
||||
_POSIX_VERSION: '200809',
|
||||
_POSIX2_VERSION: '200809',
|
||||
NGROUPS_MAX: '32',
|
||||
OPEN_MAX: '256',
|
||||
STREAM_MAX: '256',
|
||||
TZNAME_MAX: '32',
|
||||
_POSIX_CHOWN_RESTRICTED: '1',
|
||||
_POSIX_NO_TRUNC: '1',
|
||||
_POSIX_VDISABLE: '0',
|
||||
_POSIX_JOB_CONTROL: '0',
|
||||
_POSIX_SAVED_IDS: '0',
|
||||
/** Bare shell line length (reasonable REPL limit, not a hard kernel cap). */
|
||||
BARE_OS_INPUT_LINE_MAX: '8192'
|
||||
}
|
||||
|
||||
async function run(ctx, argv) {
|
||||
const name = argv[1]
|
||||
const args = argv.slice(1).filter((a) => a !== '--')
|
||||
let dumpAll = false
|
||||
let name = null
|
||||
for (const a of args) {
|
||||
if (a === '-a') dumpAll = true
|
||||
else if (!a.startsWith('-')) name = a
|
||||
else {
|
||||
ctx.console.error('getconf: unknown option: ' + a)
|
||||
ctx.exitCode = 1
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if (dumpAll) {
|
||||
for (const k of Object.keys(CONF).sort()) {
|
||||
ctx.console.log(k + '\n' + CONF[k])
|
||||
}
|
||||
ctx.exitCode = 0
|
||||
return
|
||||
}
|
||||
|
||||
if (!name) {
|
||||
ctx.console.error('usage: getconf VARIABLE_NAME')
|
||||
ctx.console.error('usage: getconf [-a] system_var')
|
||||
ctx.exitCode = 1
|
||||
return
|
||||
}
|
||||
ctx.console.error('getconf: not implemented on Bare OS (no full sysconf path): ' + name)
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(CONF, name)) {
|
||||
ctx.console.log(CONF[name])
|
||||
ctx.exitCode = 0
|
||||
return
|
||||
}
|
||||
|
||||
ctx.console.error('getconf: ' + name + ': unknown variable')
|
||||
ctx.exitCode = 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user