repl

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2026 License: AGPL-3.0 Imports: 0 Imported by: 0

README

yupsh — Yup Shell

CI Go Report Card Release License

The interactive REPL for the yup.sh / gloo-foo command ecosystem: type-safe Go commands composed into Unix-style pipelines, with globbing, ~ expansion, history, and in-line editing. The program is yupsh (Yup Shell); the prompt is yup>.

go install github.com/yupsh/repl/cmd/yupsh@latest
yupsh

Full documentation — usage, the command catalogue, architecture, and development — is maintained in the project wiki, kept separate so improving the docs does not churn the codebase.

Develop

make help         # list every target
make check        # gofumpt, vet, staticcheck, gocognit (<=7), 100% coverage, goreleaser check, govulncheck
make integration  # black-box integration tests (go:build integration)
make examples     # run the full example suite (examples/) through the binary
make build        # build the yupsh binary for the current platform (via goreleaser)

Releases are cut by goreleaser: pushing a v* tag runs the release workflow, which builds the linux/darwin × amd64/arm64 archives described in .goreleaser.yaml.

License

See LICENSE.

Documentation

Overview

Package repl is the module root marker for the yupsh REPL.

The program is laid out to the gomatic/template.cli three-tier standard: the binary entry point is cmd/yupsh, and all behaviour lives under internal/ — the app tier (internal/app), the line orchestrator (internal/line), and the implementation packages (internal/token, internal/expansion, internal/flags, internal/command, internal/pipeline) over the shared internal/constants sentinel errors. See docs/architecture.md.

Directories

Path Synopsis
cmd
yupsh command
Command yupsh is an interactive REPL over the gloo-foo/framework typed-stream pipeline and the gloo-foo/cmd-* command modules.
Command yupsh is an interactive REPL over the gloo-foo/framework typed-stream pipeline and the gloo-foo/cmd-* command modules.
internal
app
Package app is the yupsh REPL surface: the interactive read-eval-print loop, its built-ins, banner, and help, plus the line reader that feeds it.
Package app is the yupsh REPL surface: the interactive read-eval-print loop, its built-ins, banner, and help, plus the line reader that feeds it.
command
Package command is the yupsh command catalogue: the registry mapping each command keyword to how its flags are parsed and how its pipeline segment is built from the gloo-foo/cmd-* modules.
Package command is the yupsh command catalogue: the registry mapping each command keyword to how its flags are parsed and how its pipeline segment is built from the gloo-foo/cmd-* modules.
expansion
Package expansion applies shell-style expansion to command argument tokens: tilde expansion then pathname globbing, on unquoted tokens only.
Package expansion applies shell-style expansion to command argument tokens: tilde expansion then pathname globbing, on unquoted tokens only.
flags
Package flags translates a command segment's Unix-style flag tokens into the typed option values that the underlying gloo-foo/cmd-* constructors expect.
Package flags translates a command segment's Unix-style flag tokens into the typed option values that the underlying gloo-foo/cmd-* constructors expect.
line
Package line orchestrates execution of a single REPL input line.
Package line orchestrates execution of a single REPL input line.
pipeline
Package pipeline assembles built command segments into a runnable typed-stream pipeline and executes it against the gloo-foo/framework.
Package pipeline assembles built command segments into a runnable typed-stream pipeline and executes it against the gloo-foo/framework.
token
Package token tokenizes a REPL input line into pipeline segments.
Package token tokenizes a REPL input line into pipeline segments.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL