blob: b2b9682028503bf432d77f4bb88661fc47704011 [file] [log] [blame] [view]
# Fuchsia Package Resolver Control
This repository provides basic control of the package resolver and package cache
components.
## Examples
To resolve a package, run:
```
% pkgctl resolve fuchsia-pkg://fuchsia.com/fonts
```
To open a package (and display its contents) by merkle root, run:
```
% pkgctl open $MERKLE_ROOT
```
## URI Rewrite Rules
Prior to resolving a fuchsia-pkg URI into a package directory, the package
resolver will first iterate through its rewrite rules in sequence looking for
the first rule that matches the given URI and that, when applied to the given
URI, produces another valid URI. This rewritten URI is the resolved instead and
the given URI is discarded. If no rules match, the given URI is used as-is.
A rewrite rule must match the entire host of the URI and must prefix match the
URI's path at a `/` boundary. If the rewrite rule's path doesn't end in a `/`,
it must match the entire URI path.
## Examples
View all configured static and dynamic rewrite rules:
```
% pkgctl rule list
```
Remove all configured dynamic rewrite rules. Any static rewrite rules cannot be
removed.
```
% pkgctl rule clear
```
Replace the configured dynamic rewrite rules with the rule config present on
a device at `/tmp/rules.json`:
```
% pkgctl rule replace file /tmp/rules.json
```
View the configured rewrite rules:
```
% pkgctl rule dump-dynamic
```
**Note**: The following set of rewrite rules will redirect the "/rolldice" package
from "fuchsia.com" to the repository with the hostname "devhost".
```json
{
"version": "1",
"content": [
{
"host_match": "fuchsia.com",
"host_replacement": "devhost",
"path_prefix_match": "/rolldice",
"path_prefix_replacement": "/rolldice"
}
]
}
```