Skip to content

majordomus env enter

Enter the repository: the assignments a shell here benefits from on standard output, the banner on standard error, the workflow bridge refreshed when a declaration behind it moved, and the runtime ensured — the whole of what entering this repository is, as one call, so that no person and no agent has to remember a sequence. Never builds, never reaches a remote network, and never waits for a server it started to answer

majordomus env enter

Usage

majordomus env enter [OPTIONS]

Arguments

argumentvaluedefaultdescription
--shell <SHELL> direnv The shell to write for: `direnv`, `bash`, `zsh`, `sh`, `ksh` or `fish`
--mode <MODE> — How much banner to draw; MAJORDOMUS_BANNER decides without it
--no-banner flag — Do not draw the banner
--no-bridge flag — Do not refresh the workflow bridge
--no-runtime flag — Do not ensure the runtime: export, draw and refresh only. What MAJORDOMUS_RUNTIME=off says, as an argument
--wait <SECONDS> 0 Wait this many seconds for a server this call started to answer. Zero — the default, and what a shell prompt asks for — returns as soon as one has been started, and the entry file's watch over the lease brings the address in when it is published
--repo <PATH> — Start the search for the repository root here (default: the current directory) (accepted by every subcommand)
--discovery vcs | filesystem vcs How declarative files are enumerated (accepted by every subcommand)
  • vcs — Tracked files, through the version-control index (the layer's contract); a layer none of which is tracked is read from the work tree
  • filesystem — A walk of the work tree with the same glob semantics; untracked files included
--strict flag — Refuse to proceed when any file of the layer carries an error diagnostic (accepted by every subcommand)
--share <DIR> — The tool distribution's share directory (kinds.yaml, schemas/); default: $MAJORDOMUS_SHARE, then the repository's own share/, then the one beside the executable (accepted by every subcommand)
--format text | json text Output shape (accepted by every subcommand)
  • text — Lines for a person
  • json — One JSON document, deterministic

Examples

  • Everything entering this repository is, as one call

    What the file a shell evaluates on entry runs, and the only call it makes (ADR 0043): the assignments on standard output for `eval`, the banner on standard error, the workflow bridge refreshed when a declaration behind it moved, and the repository's shared server ensured when nothing is serving this checkout. It never builds, never ensures from an executable older than its sources, never waits for a server it started to answer, and never exits non-zero — a non-zero exit here would make direnv report that the whole environment failed. `--no-runtime` is what this example passes, because an example is not the place to start a server.

    $ majordomus env enter --shell direnv --no-banner --no-bridge --no-runtime

    What it asserts: exits 0; prints export MAJORDOMUS_ROOT=.

    Tested by apps/majordomus-cli/tests/cli_examples.rs, which runs the command against the built executable and asserts what the page states.

Where this comes from

Declared once in apps/majordomus-cli/src/cli.rs: clap for the structure, typed Rust metadata beside it for the examples. This page, majordomus env enter --help, docs/generated/cli.md and docs/generated/cli.json are projections of that one declaration.

The whole command line on one page: the registry's command-line page. The task lifecycle (init, start, finish, doctor, ...) belongs to the shell tool, a different program: Commands and its specification.

Searches the titles and descriptions of every page this site publishes.