@kud/soap-cli 3.0.12 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +20 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
// index.ts
|
|
4
|
+
import fs2 from "fs/promises";
|
|
4
5
|
import inquirer from "inquirer";
|
|
5
6
|
import signale from "signale";
|
|
6
7
|
import trash from "trash";
|
|
@@ -173,6 +174,7 @@ var resolveZapPaths = async (caskData) => {
|
|
|
173
174
|
var getCaskInfo = async (caskName) => {
|
|
174
175
|
try {
|
|
175
176
|
const caskData = await fetchCaskData(caskName);
|
|
177
|
+
const renamedTo = caskData.token !== caskName ? caskData.token : null;
|
|
176
178
|
let appName = null;
|
|
177
179
|
for (const artifact of caskData.artifacts) {
|
|
178
180
|
if (artifact.app) {
|
|
@@ -182,7 +184,7 @@ var getCaskInfo = async (caskName) => {
|
|
|
182
184
|
}
|
|
183
185
|
}
|
|
184
186
|
const zapFiles = await resolveZapPaths(caskData);
|
|
185
|
-
return { appName, zapFiles };
|
|
187
|
+
return { appName, zapFiles, renamedTo };
|
|
186
188
|
} catch (error) {
|
|
187
189
|
throw new Error(
|
|
188
190
|
`Failed to get cask info for "${caskName}": ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -245,7 +247,7 @@ var param = rawArgs.find((a) => !a.startsWith("-"));
|
|
|
245
247
|
var yes = rawArgs.includes("--yes") || rawArgs.includes("-y");
|
|
246
248
|
var yesDangerously = rawArgs.includes("--yes-dangerously");
|
|
247
249
|
if (firstArg === "--version" || firstArg === "-v") {
|
|
248
|
-
console.log("3.0.
|
|
250
|
+
console.log("3.0.14");
|
|
249
251
|
process.exit(0);
|
|
250
252
|
}
|
|
251
253
|
if (!firstArg || firstArg === "--help" || firstArg === "-h") {
|
|
@@ -299,7 +301,12 @@ Welcome to ${chalk.bold("soap")} \u{1F9FC}, ${chalk.italic("the app cleaner")}.
|
|
|
299
301
|
`
|
|
300
302
|
);
|
|
301
303
|
try {
|
|
302
|
-
const { appName, zapFiles } = isCask ? await spinner(chalk.dim("Fetching cask info\u2026"), () => getCaskInfo(param)) : { appName: appNameFromPath(param), zapFiles: [] };
|
|
304
|
+
const { appName, zapFiles, renamedTo } = isCask ? await spinner(chalk.dim("Fetching cask info\u2026"), () => getCaskInfo(param)) : { appName: appNameFromPath(param), zapFiles: [], renamedTo: null };
|
|
305
|
+
if (renamedTo) {
|
|
306
|
+
signale.warn(
|
|
307
|
+
`Cask "${param}" has been renamed to "${chalk.bold(renamedTo)}". Files will be cleaned using the new name.`
|
|
308
|
+
);
|
|
309
|
+
}
|
|
303
310
|
if (!appName) {
|
|
304
311
|
if (isCask) {
|
|
305
312
|
signale.warn(
|
|
@@ -415,6 +422,16 @@ Can you become an admin before we proceed?`,
|
|
|
415
422
|
console.log("");
|
|
416
423
|
signale.pending("Running Homebrew uninstall\u2026");
|
|
417
424
|
await $2`brew uninstall --zap ${param}`;
|
|
425
|
+
const brewPrefix = (await $2`brew --prefix`).stdout.trim();
|
|
426
|
+
const caskroomEntry = `${brewPrefix}/Caskroom/${param}`;
|
|
427
|
+
try {
|
|
428
|
+
await fs2.access(caskroomEntry);
|
|
429
|
+
await trash(caskroomEntry);
|
|
430
|
+
signale.success(
|
|
431
|
+
`Removed leftover Caskroom entry: ${chalk.dim(caskroomEntry)}`
|
|
432
|
+
);
|
|
433
|
+
} catch {
|
|
434
|
+
}
|
|
418
435
|
}
|
|
419
436
|
console.log("");
|
|
420
437
|
signale.success("Done.");
|