3
0
Fork 0
mirror of https://github.com/Swatinem/rust-cache synced 2025-06-08 17:43:25 +00:00

serialization bugs

This commit is contained in:
Jonathan Kelley 2025-01-28 23:37:52 -08:00
parent 5bbbdb9115
commit 829dfd6b08
No known key found for this signature in database
GPG key ID: 1FBB50F7EB0A08BE
4 changed files with 23 additions and 12 deletions

View file

@ -87392,6 +87392,7 @@ async function run() {
const restoreJson = external_path_default().join(config_CARGO_HOME, "incremental-restore.json"); const restoreJson = external_path_default().join(config_CARGO_HOME, "incremental-restore.json");
const restoreString = await external_fs_default().promises.readFile(restoreJson, "utf8"); const restoreString = await external_fs_default().promises.readFile(restoreJson, "utf8");
const restoreData = JSON.parse(restoreString); const restoreData = JSON.parse(restoreString);
lib_core.debug(`restoreData: ${JSON.stringify(restoreData)}`);
if (restoreData.roots.length == 0) { if (restoreData.roots.length == 0) {
throw new Error("No incremental roots found"); throw new Error("No incremental roots found");
} }

13
dist/save/index.js vendored
View file

@ -87340,8 +87340,11 @@ async function rmRF(dirName) {
async function saveMtimes(targetDirs) { async function saveMtimes(targetDirs) {
let times = new Map(); let data = {
let stack = new Array(); roots: [],
times: {},
};
let stack = [];
// Collect all the incremental files // Collect all the incremental files
for (const dir of targetDirs) { for (const dir of targetDirs) {
for (const maybeProfile of await external_fs_default().promises.readdir(dir)) { for (const maybeProfile of await external_fs_default().promises.readdir(dir)) {
@ -87353,7 +87356,7 @@ async function saveMtimes(targetDirs) {
} }
} }
// Save the stack as the roots - we cache these directly // Save the stack as the roots - we cache these directly
let roots = stack.slice(); data.roots = stack.slice();
while (stack.length > 0) { while (stack.length > 0) {
const dirName = stack.pop(); const dirName = stack.pop();
const dir = await external_fs_default().promises.opendir(dirName); const dir = await external_fs_default().promises.opendir(dirName);
@ -87364,11 +87367,11 @@ async function saveMtimes(targetDirs) {
else { else {
const fileName = external_path_default().join(dirName, dirent.name); const fileName = external_path_default().join(dirName, dirent.name);
const { mtime } = await external_fs_default().promises.stat(fileName); const { mtime } = await external_fs_default().promises.stat(fileName);
times.set(fileName, mtime.getTime()); data.times[fileName] = mtime.getTime();
} }
} }
} }
return { roots, times: times }; return data;
} }
;// CONCATENATED MODULE: ./src/save.ts ;// CONCATENATED MODULE: ./src/save.ts

View file

@ -8,13 +8,18 @@ import fs from "fs";
import path from "path"; import path from "path";
export type MtimeData = { export type MtimeData = {
roots: Array<string>, roots: string[],
times: Map<string, number> times: {
[key: string]: number
}
}; };
export async function saveMtimes(targetDirs: string[]): Promise<MtimeData> { export async function saveMtimes(targetDirs: string[]): Promise<MtimeData> {
let times = new Map<string, number>(); let data: MtimeData = {
let stack = new Array<string>(); roots: [],
times: {},
};
let stack: string[] = [];
// Collect all the incremental files // Collect all the incremental files
for (const dir of targetDirs) { for (const dir of targetDirs) {
@ -28,7 +33,7 @@ export async function saveMtimes(targetDirs: string[]): Promise<MtimeData> {
} }
// Save the stack as the roots - we cache these directly // Save the stack as the roots - we cache these directly
let roots = stack.slice(); data.roots = stack.slice();
while (stack.length > 0) { while (stack.length > 0) {
const dirName = stack.pop()!; const dirName = stack.pop()!;
@ -40,10 +45,10 @@ export async function saveMtimes(targetDirs: string[]): Promise<MtimeData> {
} else { } else {
const fileName = path.join(dirName, dirent.name); const fileName = path.join(dirName, dirent.name);
const { mtime } = await fs.promises.stat(fileName); const { mtime } = await fs.promises.stat(fileName);
times.set(fileName, mtime.getTime()); data.times[fileName] = mtime.getTime();
} }
} }
} }
return { roots, times: times }; return data;
} }

View file

@ -71,6 +71,8 @@ async function run() {
const restoreString = await fs.promises.readFile(restoreJson, "utf8"); const restoreString = await fs.promises.readFile(restoreJson, "utf8");
const restoreData: MtimeData = JSON.parse(restoreString); const restoreData: MtimeData = JSON.parse(restoreString);
core.debug(`restoreData: ${JSON.stringify(restoreData)}`);
if (restoreData.roots.length == 0) { if (restoreData.roots.length == 0) {
throw new Error("No incremental roots found"); throw new Error("No incremental roots found");
} }