blob: 28a6ea13808b48ba2af81cae4ebd74dd5b937c8a [file] [log] [blame] [view] [edit]
# cargo-pkgid(1)
## NAME
cargo-pkgid --- Print a fully qualified package specification
## SYNOPSIS
`cargo pkgid` [_options_] [_spec_]
## DESCRIPTION
Given a _spec_ argument, print out the fully qualified package ID specifier
for a package or dependency in the current workspace. This command will
generate an error if _spec_ is ambiguous as to which package it refers to in
the dependency graph. If no _spec_ is given, then the specifier for the local
package is printed.
This command requires that a lockfile is available and dependencies have been
fetched.
A package specifier consists of a name, version, and source URL. You are
allowed to use partial specifiers to succinctly match a specific package as
long as it matches only one package. This specifier is also used by other parts
in Cargo, such as {{man "cargo-metadata" 1}} and [JSON messages] emitted by Cargo.
The format of a _spec_ can be one of the following:
SPEC Structure | Example SPEC
---------------------------|--------------
_name_ | `bitflags`
_name_`@`_version_ | `bitflags@1.0.4`
_url_ | `https://github.com/rust-lang/cargo`
_url_`#`_version_ | `https://github.com/rust-lang/cargo#0.33.0`
_url_`#`_name_ | `https://github.com/rust-lang/crates.io-index#bitflags`
_url_`#`_name_`@`_version_ | `https://github.com/rust-lang/cargo#crates-io@0.21.0`
The specification grammar can be found in chapter [Package ID Specifications].
## OPTIONS
### Package Selection
{{#options}}
{{#option "`-p` _spec_" "`--package` _spec_" }}
Get the package ID for the given package instead of the current package.
{{/option}}
{{/options}}
### Display Options
{{#options}}
{{> options-display }}
{{/options}}
### Manifest Options
{{#options}}
{{> options-manifest-path }}
{{> options-locked }}
{{> options-lockfile-path }}
{{/options}}
{{> section-options-common }}
{{> section-environment }}
{{> section-exit-status }}
## EXAMPLES
1. Retrieve package specification for `foo` package:
cargo pkgid foo
2. Retrieve package specification for version 1.0.0 of `foo`:
cargo pkgid foo@1.0.0
3. Retrieve package specification for `foo` from crates.io:
cargo pkgid https://github.com/rust-lang/crates.io-index#foo
4. Retrieve package specification for `foo` from a local package:
cargo pkgid file:///path/to/local/package#foo
## SEE ALSO
{{man "cargo" 1}}, {{man "cargo-generate-lockfile" 1}}, {{man "cargo-metadata" 1}},
[Package ID Specifications], [JSON messages]
[Package ID Specifications]: ../reference/pkgid-spec.html
[JSON messages]: ../reference/external-tools.html#json-messages