Skip to content

punix info

Show recipe metadata and the predicted store path for a single module.

punix info MODULE [FILE] [options]

What it does

  1. Loads + type-checks FILE (or discovers it from $PUNIX_PACKAGES or ./packages/ when omitted).
  2. Evaluates <MODULE>__pname, <MODULE>__version, <MODULE>__recipe, <MODULE>__deps, <MODULE>__meta, and the realise binding <MODULE>__out (predicted store path; no actual build).
  3. Annotates with installed: yes — gen-NNN if MODULE is in the active profile.

Example

$ cd ~/projects/my-pcl-tree
$ punix info Ripgrep
module:       Ripgrep
pname:        ripgrep
version:      14.1.0
recipe:       std.shell
description:  fast recursive grep
homepage:     https://github.com/BurntSushi/ripgrep
license:      MIT
build_system: cargo
origin:       brew-import
deps:         rustc-bootstrap
store_path:   /Users/me/.punix/store/abcd…-ripgrep-14.1.0
installed:    yes  gen-003 (active)

The store path is computed via the dry-run adapter (RealiseDryRun) — same canonical-derivation hash as the real build, no I/O.

Options

  • --file FILE — explicit PCL file or directory; overrides the default discovery.
  • --store-root PATH — store location (default ~/.punix/store).
  • --profile-root PATH — profile root (default ~/.punix/current).
  • --scenario NAME — evaluate under scenario NAME.

Errors

Symptom Cause
error: 'X' is not a package module in FILE (norecipefield) (exit 1) The named module exists but has no recipe — it's a config-only module. Use punix why FILE X.field to inspect plain values.
Type-check errors ([E#]) The PCL tree doesn't type-check; surfaces as the same located error you'd get from punix check.

See also