Add edit program

This commit is contained in:
Raven Scott
2026-04-03 21:59:05 -04:00
parent 57b1296981
commit 32d3eaa833
40 changed files with 7211 additions and 412 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ Files in this directory are **read from disk by the seeder** (or copied into `pa
## Contents
- **`init.js`** — Kernel entry: must define `async function start(ctx)`. Boot order: **`/etc/os-release`** → **`/etc/motd`** → optional **`/etc/bare-os/rc.profile.<profile>`** (profile from **`BARE_OS_BOOT_PROFILE`** or first line of **`/etc/bare-os/profile`**; the booter mirrors the resolved name in **`ctx.env.BARE_OS_BOOT_PROFILE_RESOLVED`** and **`/run/bare-os/boot_profile`**) → **`/etc/bare-os/rc`** → **`/etc/bare-os/rc.d/*`** (sorted; digit-prefixed names only; skip dotfiles, `*~`, `README*`, `*.md`; optional **`BARE_OS_RC_D_SKIP`** comma list and **`prefix*`** patterns) → optional **`/etc/bare-os/rc.local`** → **`/etc/bare-os/kernel.d/*`** (same rules as **`rc.d`**) → banner → when **`BARE_OS_SKIP_REPL`**, optional **onboot** lines from **`BARE_OS_ONBOOT`** or **`/etc/bare-os/onboot`** → **`readLine` / `execLine`** loop. Boot **`execLine`** errors in trusted snippets are logged; with **`BARE_OS_BOOT_STRICT=1`** or **`true`**, the first throw calls **`requestBooterExit(1)`** and stops later boot phases. Custom kernels may call **`ctx.registerKernelShutdownHook(fn)`** before initd disposers; use **`ctx.bareOsRuntimeCaps`** for limits, pseudo paths, and **`features`** ([`developer-guide/02-the-context-object.md`](../developer-guide/02-the-context-object.md)).
- **`bin/`** — **Tier-1 utilities** built by [bare-os-coreutils](../packages/bare-os-coreutils/README.md). Each file is **`runtime.js`** + optional **`lib/*-engine.js`** (**`sed`**, **`awk`**) or **`lib/man-render.js`** (**`man`**) + **`async function run(ctx, argv)`** (no ESM **`import`** in **`src/`**).
- **`bin/`** — **Tier-1 utilities** built by [bare-os-coreutils](../packages/bare-os-coreutils/README.md). Each file is **`runtime.js`** + optional **`lib/*-engine.js`** (**`sed`**, **`awk`**), **`lib/man-render.js`** (**`man`**), **`lib/edit-*.js`** (**`edit`** / **`nano`** — same **`src/edit.js`**), lscolors chunks (**`ls`**, **`dircolors`**), etc. + **`async function run(ctx, argv)`** (no ESM **`import`** in **`src/`**). **`/bin/nano`** duplicates **`/bin/edit`** for familiarity; the shells default **`nano``edit`** alias uses the **`edit`** command name after expansion.
- **`lib/bare/`** — Optional IIFE bundles + **`manifest.json`** for **`ctx.bare`** drive merge, built by [bare-os-bare-libs](../packages/bare-os-bare-libs/README.md). Same trust model as **`bin/`** (trusted seeded image).
- **`share/man/man.json`** — Merged manual database for **`/bin/man`** (built by **`bare-os-coreutils`**; see [handbook ch.10](../handbook/10-manpages-and-online-help.md)).
- **`etc/os-release`** — Static OS metadata (`NAME`, `VERSION`, …).
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -62,7 +62,7 @@ function barePosixBlocks(size) {
async function run(ctx, argv) {
ctx.console.log(
'Bare OS — default user: guest | shell builtins: alias, barerc, cd, command, export, exit, login, logout, readonly, type, umask, unalias, unset, : | /bin: awk basename cat chgrp chmod chown cksum clear cp crontab curl cut date dirname dircolors du echo env exit false find getconf grep head hdms help hostname id journalctl jq ln login logout logname ls man mkdir mkfifo mv nl od pathchk printenv printf pwd readlink rm rmdir savevault sed seq sleep sort stat systemctl tail tee test theme time touch tr true tty uname wc wget which whoami xargs'
'Bare OS — default user: guest | shell builtins: alias, barerc, cd, command, export, exit, login, logout, readonly, type, umask, unalias, unset, : | /bin: awk basename cat chgrp chmod chown cksum clear cp crontab curl cut date dirname dircolors du edit echo env exit false find getconf grep head hdms help hostname id journalctl jq ln login logout logname ls man mkdir mkfifo mktemp nano mv nl od pathchk printenv printf pwd readlink rm rmdir savevault sed seq sleep sort stat systemctl tail tee test theme time touch tr true tty uname wc wget which whoami xargs'
)
ctx.console.log(
'Docs: man <command> | man handbook (full handbook, section 7) | man bare-os-shell | man -k <word> | man -l'
File diff suppressed because it is too large Load Diff
@@ -7,18 +7,18 @@
"b4a"
]
},
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/safetyCatch.js",
"keys": [
"safetyCatch"
]
},
{
"path": "/lib/bare/bundles/hypercoreIdEncoding.js",
"keys": [
"hypercoreIdEncoding"
]
},
{
"path": "/lib/bare/bundles/compactEncoding.js",
"keys": [
@@ -37,18 +37,18 @@
"protomux"
]
},
{
"path": "/lib/bare/bundles/bareEvents.js",
"keys": [
"bareEvents"
]
},
{
"path": "/lib/bare/bundles/bareEncoding.js",
"keys": [
"bareEncoding"
]
},
{
"path": "/lib/bare/bundles/bareEvents.js",
"keys": [
"bareEvents"
]
},
{
"path": "/lib/bare/bundles/barePath.js",
"keys": [
@@ -67,6 +67,18 @@
"bareAbortController"
]
},
{
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"keys": [
"bareAnsiEscapes"
]
},
{
"path": "/lib/bare/bundles/bareAddonResolve.js",
"keys": [
"bareAddonResolve"
]
},
{
"path": "/lib/bare/bundles/bareReadline.js",
"keys": [
@@ -74,9 +86,9 @@
]
},
{
"path": "/lib/bare/bundles/bareAnsiEscapes.js",
"path": "/lib/bare/bundles/bareAppKit.js",
"keys": [
"bareAnsiEscapes"
"bareAppKit"
]
},
{
@@ -86,9 +98,15 @@
]
},
{
"path": "/lib/bare/bundles/bareAddonResolve.js",
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
"bareAddonResolve"
"bareApk"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
@@ -109,24 +127,6 @@
"fetch"
]
},
{
"path": "/lib/bare/bundles/bareApk.js",
"keys": [
"bareApk"
]
},
{
"path": "/lib/bare/bundles/bareAssert.js",
"keys": [
"bareAssert"
]
},
{
"path": "/lib/bare/bundles/bareAppKit.js",
"keys": [
"bareAppKit"
]
},
{
"path": "/lib/bare/bundles/bareBmp.js",
"keys": [
@@ -151,12 +151,6 @@
"bareBuffer"
]
},
{
"path": "/lib/bare/bundles/bareBundleEvaluate.js",
"keys": [
"bareBundleEvaluate"
]
},
{
"path": "/lib/bare/bundles/bareBluetoothApple.js",
"keys": [
@@ -164,9 +158,9 @@
]
},
{
"path": "/lib/bare/bundles/bareBoot.js",
"path": "/lib/bare/bundles/bareBundleEvaluate.js",
"keys": [
"bareBoot"
"bareBundleEvaluate"
]
},
{
@@ -175,18 +169,18 @@
"bareConsole"
]
},
{
"path": "/lib/bare/bundles/bareDebugLog.js",
"keys": [
"bareDebugLog"
]
},
{
"path": "/lib/bare/bundles/bareBundleId.js",
"keys": [
"bareBundleId"
]
},
{
"path": "/lib/bare/bundles/bareBoot.js",
"keys": [
"bareBoot"
]
},
{
"path": "/lib/bare/bundles/bareDaemon.js",
"keys": [
@@ -194,9 +188,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDelta.js",
"path": "/lib/bare/bundles/bareDebugLog.js",
"keys": [
"bareDelta"
"bareDebugLog"
]
},
{
@@ -206,9 +200,9 @@
]
},
{
"path": "/lib/bare/bundles/bareDns.js",
"path": "/lib/bare/bundles/bareDelta.js",
"keys": [
"bareDns"
"bareDelta"
]
},
{
@@ -218,15 +212,15 @@
]
},
{
"path": "/lib/bare/bundles/bareEnv.js",
"path": "/lib/bare/bundles/bareDns.js",
"keys": [
"bareEnv"
"bareDns"
]
},
{
"path": "/lib/bare/bundles/bareExif.js",
"path": "/lib/bare/bundles/bareEnv.js",
"keys": [
"bareExif"
"bareEnv"
]
},
{
@@ -236,15 +230,15 @@
]
},
{
"path": "/lib/bare/bundles/bareDgram.js",
"path": "/lib/bare/bundles/bareExif.js",
"keys": [
"bareDgram"
"bareExif"
]
},
{
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"path": "/lib/bare/bundles/bareDgram.js",
"keys": [
"bareFfmpegEncodings"
"bareDgram"
]
},
{
@@ -253,12 +247,24 @@
"bareFfmpeg"
]
},
{
"path": "/lib/bare/bundles/bareFfmpegEncodings.js",
"keys": [
"bareFfmpegEncodings"
]
},
{
"path": "/lib/bare/bundles/bareFormData.js",
"keys": [
"bareFormData"
]
},
{
"path": "/lib/bare/bundles/bareFileLogger.js",
"keys": [
"bareFileLogger"
]
},
{
"path": "/lib/bare/bundles/bareFormat.js",
"keys": [
@@ -271,18 +277,6 @@
"bareGif"
]
},
{
"path": "/lib/bare/bundles/bareFileLogger.js",
"keys": [
"bareFileLogger"
]
},
{
"path": "/lib/bare/bundles/bareHeif.js",
"keys": [
"bareHeif"
]
},
{
"path": "/lib/bare/bundles/bareHrtime.js",
"keys": [
@@ -295,24 +289,18 @@
"bareGtk"
]
},
{
"path": "/lib/bare/bundles/bareHeif.js",
"keys": [
"bareHeif"
]
},
{
"path": "/lib/bare/bundles/bareHttpParser.js",
"keys": [
"bareHttpParser"
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"keys": [
"bareIco"
]
},
{
"path": "/lib/bare/bundles/bareImageResample.js",
"keys": [
"bareImageResample"
]
},
{
"path": "/lib/bare/bundles/bareFs.js",
"keys": [
@@ -320,9 +308,15 @@
]
},
{
"path": "/lib/bare/bundles/bareHttp1.js",
"path": "/lib/bare/bundles/bareImageResample.js",
"keys": [
"bareHttp1"
"bareImageResample"
]
},
{
"path": "/lib/bare/bundles/bareIco.js",
"keys": [
"bareIco"
]
},
{
@@ -331,6 +325,12 @@
"bareInspect"
]
},
{
"path": "/lib/bare/bundles/bareHttp1.js",
"keys": [
"bareHttp1"
]
},
{
"path": "/lib/bare/bundles/bareHttps.js",
"keys": [
@@ -343,24 +343,12 @@
"bareJpeg"
]
},
{
"path": "/lib/bare/bundles/bareIpc.js",
"keys": [
"bareIpc"
]
},
{
"path": "/lib/bare/bundles/bareIntl.js",
"keys": [
"bareIntl"
]
},
{
"path": "/lib/bare/bundles/bareLief.js",
"keys": [
"bareLief"
]
},
{
"path": "/lib/bare/bundles/bareLogger.js",
"keys": [
@@ -368,9 +356,15 @@
]
},
{
"path": "/lib/bare/bundles/bareInspector.js",
"path": "/lib/bare/bundles/bareIpc.js",
"keys": [
"bareInspector"
"bareIpc"
]
},
{
"path": "/lib/bare/bundles/bareLief.js",
"keys": [
"bareLief"
]
},
{
@@ -380,15 +374,15 @@
]
},
{
"path": "/lib/bare/bundles/bareMake.js",
"path": "/lib/bare/bundles/bareInspector.js",
"keys": [
"bareMake"
"bareInspector"
]
},
{
"path": "/lib/bare/bundles/bareModuleResolve.js",
"path": "/lib/bare/bundles/bareMake.js",
"keys": [
"bareModuleResolve"
"bareMake"
]
},
{
@@ -398,9 +392,9 @@
]
},
{
"path": "/lib/bare/bundles/bareModuleTraverse.js",
"path": "/lib/bare/bundles/bareModuleResolve.js",
"keys": [
"bareModuleTraverse"
"bareModuleResolve"
]
},
{
@@ -410,9 +404,9 @@
]
},
{
"path": "/lib/bare/bundles/bareNative.js",
"path": "/lib/bare/bundles/bareModuleTraverse.js",
"keys": [
"bareNative"
"bareModuleTraverse"
]
},
{
@@ -428,9 +422,9 @@
]
},
{
"path": "/lib/bare/bundles/bareMedia.js",
"path": "/lib/bare/bundles/bareNative.js",
"keys": [
"bareMedia"
"bareNative"
]
},
{
@@ -445,48 +439,36 @@
"bareOs"
]
},
{
"path": "/lib/bare/bundles/bareMedia.js",
"keys": [
"bareMedia"
]
},
{
"path": "/lib/bare/bundles/bareNet.js",
"keys": [
"bareNet"
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareDev"
]
},
{
"path": "/lib/bare/bundles/barePack.js",
"keys": [
"barePack"
]
},
{
"path": "/lib/bare/bundles/barePerformance.js",
"keys": [
"barePerformance"
]
},
{
"path": "/lib/bare/bundles/barePack.js",
"keys": [
"barePack"
]
},
{
"path": "/lib/bare/bundles/barePackDrive.js",
"keys": [
"barePackDrive"
]
},
{
"path": "/lib/bare/bundles/barePng.js",
"keys": [
"barePng"
]
},
{
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"keys": [
"bareNodeRuntime"
]
},
{
"path": "/lib/bare/bundles/barePipe.js",
"keys": [
@@ -494,9 +476,21 @@
]
},
{
"path": "/lib/bare/bundles/barePrebuild.js",
"path": "/lib/bare/bundles/barePng.js",
"keys": [
"barePrebuild"
"barePng"
]
},
{
"path": "/lib/bare/bundles/bareDev.js",
"keys": [
"bareDev"
]
},
{
"path": "/lib/bare/bundles/bareNodeRuntime.js",
"keys": [
"bareNodeRuntime"
]
},
{
@@ -506,15 +500,15 @@
]
},
{
"path": "/lib/bare/bundles/bareQuerystring.js",
"path": "/lib/bare/bundles/barePrebuild.js",
"keys": [
"bareQuerystring"
"barePrebuild"
]
},
{
"path": "/lib/bare/bundles/bareProcess.js",
"path": "/lib/bare/bundles/bareQuerystring.js",
"keys": [
"bareProcess"
"bareQuerystring"
]
},
{
@@ -529,12 +523,24 @@
"bareRealm"
]
},
{
"path": "/lib/bare/bundles/bareProcess.js",
"keys": [
"bareProcess"
]
},
{
"path": "/lib/bare/bundles/bareRuntime.js",
"keys": [
"bareRuntime"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"keys": [
"bareRpc"
]
},
{
"path": "/lib/bare/bundles/barePromClient.js",
"keys": [
@@ -559,12 +565,6 @@
"bareRepl"
]
},
{
"path": "/lib/bare/bundles/bareRpc.js",
"keys": [
"bareRpc"
]
},
{
"path": "/lib/bare/bundles/bareRun.js",
"keys": [
@@ -577,12 +577,6 @@
"bareSignals"
]
},
{
"path": "/lib/bare/bundles/bareStorage.js",
"keys": [
"bareStorage"
]
},
{
"path": "/lib/bare/bundles/bareSidecar.js",
"keys": [
@@ -596,15 +590,9 @@
]
},
{
"path": "/lib/bare/bundles/bareStream.js",
"path": "/lib/bare/bundles/bareStorage.js",
"keys": [
"bareStream"
]
},
{
"path": "/lib/bare/bundles/bareStdio.js",
"keys": [
"bareStdio"
"bareStorage"
]
},
{
@@ -614,9 +602,15 @@
]
},
{
"path": "/lib/bare/bundles/bareTap.js",
"path": "/lib/bare/bundles/bareStream.js",
"keys": [
"bareTap"
"bareStream"
]
},
{
"path": "/lib/bare/bundles/bareStdio.js",
"keys": [
"bareStdio"
]
},
{
@@ -632,9 +626,9 @@
]
},
{
"path": "/lib/bare/bundles/bareSubprocess.js",
"path": "/lib/bare/bundles/bareTap.js",
"keys": [
"bareSubprocess"
"bareTap"
]
},
{
@@ -644,9 +638,9 @@
]
},
{
"path": "/lib/bare/bundles/bareTimers.js",
"path": "/lib/bare/bundles/bareSubprocess.js",
"keys": [
"bareTimers"
"bareSubprocess"
]
},
{
@@ -655,18 +649,24 @@
"bareThread"
]
},
{
"path": "/lib/bare/bundles/bareTcp.js",
"keys": [
"bareTcp"
]
},
{
"path": "/lib/bare/bundles/bareTpl.js",
"keys": [
"bareTpl"
]
},
{
"path": "/lib/bare/bundles/bareTimers.js",
"keys": [
"bareTimers"
]
},
{
"path": "/lib/bare/bundles/bareTcp.js",
"keys": [
"bareTcp"
]
},
{
"path": "/lib/bare/bundles/bareType.js",
"keys": [
@@ -703,18 +703,18 @@
"bareV8"
]
},
{
"path": "/lib/bare/bundles/bareWalkHandles.js",
"keys": [
"bareWalkHandles"
]
},
{
"path": "/lib/bare/bundles/bareVm.js",
"keys": [
"bareVm"
]
},
{
"path": "/lib/bare/bundles/bareWalkHandles.js",
"keys": [
"bareWalkHandles"
]
},
{
"path": "/lib/bare/bundles/bareUnionBundle.js",
"keys": [
@@ -746,9 +746,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWinUi.js",
"path": "/lib/bare/bundles/bareUtils.js",
"keys": [
"bareWinUi"
"bareUtils"
]
},
{
@@ -758,15 +758,15 @@
]
},
{
"path": "/lib/bare/bundles/bareXdiff.js",
"path": "/lib/bare/bundles/bareWinUi.js",
"keys": [
"bareXdiff"
"bareWinUi"
]
},
{
"path": "/lib/bare/bundles/bareUtils.js",
"path": "/lib/bare/bundles/bareXdiff.js",
"keys": [
"bareUtils"
"bareXdiff"
]
},
{
@@ -776,9 +776,9 @@
]
},
{
"path": "/lib/bare/bundles/bareWorker.js",
"path": "/lib/bare/bundles/bareZmq.js",
"keys": [
"bareWorker"
"bareZmq"
]
},
{
@@ -788,9 +788,9 @@
]
},
{
"path": "/lib/bare/bundles/bareZmq.js",
"path": "/lib/bare/bundles/bareWorker.js",
"keys": [
"bareZmq"
"bareWorker"
]
}
],
File diff suppressed because one or more lines are too long