No description
- Go 100%
## What changed - Created `config/config.go` with `Config` and `ShellConfig` structs, plus `Load()` and `Defaults()` helpers. - `Load()` uses `core/config.InitTemplate` for 3-layer loading (compiled defaults → `/etc/residual/shell.toml` → `~/.config/residual/shell.toml`) and writes a commented template on first run. - Updated `cmd/res-sh/main.go` to import `git.merith.xyz/residual/shell/config` instead of `core/config`. ## Files touched - `config/config.go` — new - `cmd/res-sh/main.go` — import swap; `git.merith.xyz/residual/core/config` → `git.merith.xyz/residual/shell/config` ## Why Shell history/prompt settings are specific to `res-sh` and do not belong in the shared `core` library. `core/config` retains only the generic loader and path helpers. |
||
|---|---|---|
| cmd/res-sh | ||
| config | ||
| remnant | ||
| builtin.go | ||
| exec.go | ||
| expand.go | ||
| go.mod | ||
| go.sum | ||
| parse.go | ||
| README | ||
| redirect.go | ||
| shell.go | ||
residual/shell
==============
shell engine and interactive shell for residual.
packages:
shell/ minimal shell engine — tokenize, parse, execute pipelines,
builtins (cd, exit, pwd, export, echo). no interactivity.
used as embedded fallback in res-console.
remnant/ wraps shell with history, aliases, tab completion, styled prompt.
the "just enough to be a shell" layer.
binary:
res-sh full-featured interactive shell. wraps remnant.
build:
go build ./cmd/res-sh
module: git.merith.xyz/residual/shell
requires: git.merith.xyz/residual/core