nix3-flake-metadata(1)

    Warning
    This program is experimental and its interface is subject to change.

Name

nix flake metadata - show flake metadata

Synopsis

nix flake metadata [option…] flake-url

Examples

•   Show what dwarffs resolves to:

    # nix flake metadata dwarffs
    Resolved URL:  github:edolstra/dwarffs
    Locked URL:    github:edolstra/dwarffs/f691e2c991e75edb22836f1dbe632c40324215c5
    Description:   A filesystem that fetches DWARF debug info from the Internet on demand
    Path:          /nix/store/vdyf2s1pygcl4y3dn3bm9wy7mnl8hxcv-source
    Revision:      f691e2c991e75edb22836f1dbe632c40324215c5
    Last modified: 2021-01-21 15:41:26
    Inputs:
    ├───nix: github:NixOS/nix/6254b1f5d298ff73127d7b0f0da48f142bdc753c
    │   ├───lowdown-src: github:kristapsdz/lowdown/1705b4a26fbf065d9574dce47a94e8c7c79e052f
    │   └───nixpkgs: github:NixOS/nixpkgs/ad0d20345219790533ebe06571f82ed6b034db31
    └───nixpkgs follows input 'nix/nixpkgs'

•   Show information about dwarffs in JSON format:

    # nix flake metadata dwarffs --json | jq .
    {
    "description": "A filesystem that fetches DWARF debug info from the Internet on demand",
    "lastModified": 1597153508,
    "locked": {
      "lastModified": 1597153508,
      "narHash": "sha256-VHg3MYVgQ12LeRSU2PSoDeKlSPD8PYYEFxxwkVVDRd0=",
      "owner": "edolstra",
      "repo": "dwarffs",
      "rev": "d181d714fd36eb06f4992a1997cd5601e26db8f5",
      "type": "github"
    },
    "locks": { ... },
    "original": {
      "id": "dwarffs",
      "type": "indirect"
    },
    "originalUrl": "flake:dwarffs",
    "path": "/nix/store/l06r23gw4psl1f547il2hbnwnxaplbaz-source",
    "resolved": {
      "owner": "edolstra",
      "repo": "dwarffs",
      "type": "github"
    },
    "resolvedUrl": "github:edolstra/dwarffs",
    "revision": "d181d714fd36eb06f4992a1997cd5601e26db8f5",
    "url": "github:edolstra/dwarffs/d181d714fd36eb06f4992a1997cd5601e26db8f5"
    }

Description

This command shows information about the flake specified by the flake reference flake-url. It resolves the flake reference using the flake registry, fetches it, and prints some meta data. This includes:

•   Resolved URL: If flake-url is a flake identifier, then this is the flake reference that specifies its actual location, looked up in the flake registry.

•   Locked URL: A flake reference that contains a commit or content hash and thus uniquely identifies a specific flake version.

•   Description: A one-line description of the flake, taken from the description field in flake.nix.

•   Path: The store path containing the source code of the flake.

•   Revision: The Git or Mercurial commit hash of the locked flake.

•   Revisions: The number of ancestors of the Git or Mercurial commit of the locked flake. Note that this is not available for github flakes.

•   Last modified: For Git or Mercurial flakes, this is the commit time of the commit of the locked flake; for tarball flakes, it’s the most recent timestamp of any file inside the tarball.

•   Inputs: The flake inputs with their corresponding lock file entries.

With --json, the output is a JSON object with the following fields:

•   original and originalUrl: The flake reference specified by the user (flake-url) in attribute set and URL representation.

•   resolved and resolvedUrl: The resolved flake reference (see above) in attribute set and URL representation.

•   locked and lockedUrl: The locked flake reference (see above) in attribute set and URL representation.

•   description: See Description above.

•   path: See Path above.

•   revision: See Revision above.

•   revCount: See Revisions above.

•   lastModified: See Last modified above.

•   locks: The contents of flake.lock.

Options

•   --json

    Produce output in JSON format, suitable for consumption by another program.

•   --no-pretty

    Print compact JSON output on a single line, even when the output is a terminal. Some commands may print multiple JSON objects on separate lines.

                See `--pretty`.

•   --pretty

    Print multi-line, indented JSON output for readability.

                Default: indent if output is to a terminal.
                This option is only effective when `--json` is also specified.

  Common evaluation options

•   --arg name expr

    Pass the value expr as the argument name to Nix functions.

•   --arg-from-file name path

    Pass the contents of file path as the argument name to Nix functions.

•   --arg-from-stdin name

    Pass the contents of stdin as the argument name to Nix functions.

•   --argstr name string

    Pass the string string as the argument name to Nix functions.

•   --debugger

    Start an interactive environment if evaluation fails.

•   --eval-store store-url

    The URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.

•   --impure

    Allow access to mutable paths and repositories.

•   --include / -I path

    Add path to search path entries used to resolve lookup paths

    This option may be given multiple times.

    Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.

•   --override-flake original-ref resolved-ref

    Override the flake registries, redirecting original-ref to resolved-ref.

  Common flake-related options

•   --commit-lock-file

    Commit changes to the flake’s lock file.

•   --inputs-from flake-url

    Use the inputs of the specified flake as registry entries.

•   --no-registries

    Don’t allow lookups in the flake registries.

        DEPRECATED

        Use --no-use-registries instead.

•   --no-update-lock-file

    Do not allow any updates to the flake’s lock file.

•   --no-write-lock-file

    Do not write the flake’s newly generated lock file.

•   --output-lock-file flake-lock-path

    Write the given lock file instead of flake.lock within the top-level flake.

•   --override-input input-path flake-url

    Override a specific flake input (e.g. dwarffs/nixpkgs). The input path must not be empty. This implies --no-write-lock-file.

•   --recreate-lock-file

    Recreate the flake’s lock file from scratch.

        DEPRECATED

        Use nix flake update instead.

•   --reference-lock-file flake-lock-path

    Read the given lock file instead of flake.lock within the top-level flake.

•   --update-input input-path

    Update a specific flake input (ignoring its previous entry in the lock file).

        DEPRECATED

        Use nix flake update instead.

  Logging-related options

•   --debug

    Set the logging verbosity level to ‘debug’.

•   --log-format format

    Set the format of log output; one of raw, internal-json, bar or bar-with-logs.

•   --print-build-logs / -L

    Print full build logs on standard error.

•   --quiet

    Decrease the logging verbosity level.

•   --verbose / -v

    Increase the logging verbosity level.

  Miscellaneous global options

•   --help

    Show usage information.

•   --offline

    Disable substituters and consider all previously downloaded files up-to-date.

•   --option name value

    Set the Nix configuration setting name to value (overriding nix.conf).

•   --refresh

    Consider all previously downloaded files out-of-date.

•   --repair

    During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.

•   --version

    Show version information.

    Note

    See man nix.conf for overriding configuration settings with command line flags.