mirror of
https://github.com/Swatinem/rust-cache.git
synced 2024-11-23 06:16:07 +08:00
parent
a4a1d8e7a6
commit
d38127a85b
@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## 1.0.2
|
||||
|
||||
- Don’t prune targets that have a different name from the crate, but do prune targets from the workspace.
|
||||
|
||||
## 1.0.1
|
||||
|
||||
- Improved logging output.
|
||||
|
16
dist/save/index.js
vendored
16
dist/save/index.js
vendored
@ -54793,8 +54793,14 @@ async function getIndexRef(registryName) {
|
||||
return (await getCmdOutput("git", ["rev-parse", "--short", "origin/master"], { cwd })).trim();
|
||||
}
|
||||
async function getPackages() {
|
||||
const cwd = process.cwd();
|
||||
const meta = JSON.parse(await getCmdOutput("cargo", ["metadata", "--all-features", "--format-version", "1"]));
|
||||
return meta.packages.map(({ name, version }) => ({ name, version }));
|
||||
return meta.packages
|
||||
.filter((p) => !p.manifest_path.startsWith(cwd))
|
||||
.map((p) => {
|
||||
const targets = p.targets.filter((t) => t.kind[0] === "lib").map((t) => t.name);
|
||||
return { name: p.name, version: p.version, targets };
|
||||
});
|
||||
}
|
||||
async function pruneRegistryCache(registryName, packages) {
|
||||
var e_1, _a;
|
||||
@ -54846,8 +54852,12 @@ async function pruneTarget(packages) {
|
||||
await rmExcept("./target/debug/build", keepPkg);
|
||||
await rmExcept("./target/debug/.fingerprint", keepPkg);
|
||||
const keepDeps = new Set(packages.flatMap((p) => {
|
||||
const name = p.name.replace(/-/g, "_");
|
||||
return [name, `lib${name}`];
|
||||
const names = [];
|
||||
for (const n of [p.name, ...p.targets]) {
|
||||
const name = n.replace(/-/g, "_");
|
||||
names.push(name, `lib${name}`);
|
||||
}
|
||||
return names;
|
||||
}));
|
||||
await rmExcept("./target/debug/deps", keepDeps);
|
||||
}
|
||||
|
29
src/save.ts
29
src/save.ts
@ -68,13 +68,30 @@ async function getIndexRef(registryName: string) {
|
||||
interface PackageDefinition {
|
||||
name: string;
|
||||
version: string;
|
||||
targets: Array<string>;
|
||||
}
|
||||
|
||||
type Packages = Array<PackageDefinition>;
|
||||
|
||||
interface Meta {
|
||||
packages: Array<{
|
||||
name: string;
|
||||
version: string;
|
||||
manifest_path: string;
|
||||
targets: Array<{ kind: Array<string>; name: string }>;
|
||||
}>;
|
||||
}
|
||||
|
||||
async function getPackages(): Promise<Packages> {
|
||||
const meta = JSON.parse(await getCmdOutput("cargo", ["metadata", "--all-features", "--format-version", "1"]));
|
||||
return meta.packages.map(({ name, version }: any) => ({ name, version }));
|
||||
const cwd = process.cwd();
|
||||
const meta: Meta = JSON.parse(await getCmdOutput("cargo", ["metadata", "--all-features", "--format-version", "1"]));
|
||||
|
||||
return meta.packages
|
||||
.filter((p) => !p.manifest_path.startsWith(cwd))
|
||||
.map((p) => {
|
||||
const targets = p.targets.filter((t) => t.kind[0] === "lib").map((t) => t.name);
|
||||
return { name: p.name, version: p.version, targets };
|
||||
});
|
||||
}
|
||||
|
||||
async function pruneRegistryCache(registryName: string, packages: Packages) {
|
||||
@ -111,8 +128,12 @@ async function pruneTarget(packages: Packages) {
|
||||
|
||||
const keepDeps = new Set(
|
||||
packages.flatMap((p) => {
|
||||
const name = p.name.replace(/-/g, "_");
|
||||
return [name, `lib${name}`];
|
||||
const names = [];
|
||||
for (const n of [p.name, ...p.targets]) {
|
||||
const name = n.replace(/-/g, "_");
|
||||
names.push(name, `lib${name}`);
|
||||
}
|
||||
return names;
|
||||
}),
|
||||
);
|
||||
await rmExcept("./target/debug/deps", keepDeps);
|
||||
|
Loading…
Reference in New Issue
Block a user