Skip to content

Commit e5c8040

Browse files
committed
Quieten excess file cleanup error reports
1 parent b9b7eab commit e5c8040

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/commands/start.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,15 @@ class HttpToolkitServer extends Command {
9696
return;
9797
}
9898

99+
const maybeReportError = (error: Error & { code?: string }) => {
100+
if ([
101+
'EBUSY',
102+
'EPERM'
103+
].includes(error.code!)) return;
104+
105+
else reportError(error);
106+
};
107+
99108
if (serverPaths.every((filename) => {
100109
const version = semver.valid(filename.replace(/\.partial\.\d+$/, ''));
101110
return !version || semver.lt(version, currentVersion);
@@ -104,7 +113,7 @@ class HttpToolkitServer extends Command {
104113
// a new server standalone (not just from an update), because otherwise the
105114
// update dir can end up in a broken state. Better to clear it completely.
106115
console.log("Downloaded server directory is entirely outdated, deleting it");
107-
deleteFolder(serverUpdatesPath).catch(reportError);
116+
deleteFolder(serverUpdatesPath).catch(maybeReportError);
108117
} else {
109118
// Some of the servers are outdated, but not all (maybe it includes us).
110119
// Async delete all server versions older than this currently running version.
@@ -113,7 +122,7 @@ class HttpToolkitServer extends Command {
113122

114123
if (version && semver.lt(version, currentVersion)) {
115124
console.log(`Deleting old server ${filename}`);
116-
deleteFolder(path.join(serverUpdatesPath, filename)).catch(reportError);
125+
deleteFolder(path.join(serverUpdatesPath, filename)).catch(maybeReportError);
117126
}
118127
});
119128
}

src/interceptors/chromium-based-interceptors.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,13 @@ abstract class ChromiumBasedInterceptor implements Interceptor {
9191
`Unexpected ${this.variantName} profile location, not deleting: ${profilePath}`
9292
);
9393
} else {
94-
deleteFolder(browserDetails.profile).catch(reportError);
94+
const profileFolder = browserDetails.profile;
95+
deleteFolder(profileFolder)
96+
.catch(async() => {
97+
// After 1 error, wait a little and retry
98+
await delay(1000);
99+
await deleteFolder(profileFolder);
100+
}).catch(console.warn); // If it still fails, just give up, not a big deal
95101
}
96102
}
97103
});

0 commit comments

Comments
 (0)