From 8c4fbc87d8949c0b781e6cac2978075fdf8a3451 Mon Sep 17 00:00:00 2001
From: Antoine du Hamel <duhamelantoine1995@gmail.com>
Date: Fri, 17 Jan 2025 13:17:40 +0100
Subject: [PATCH] fix: only print message for `UsageError`s

---
 sources/main.ts | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/sources/main.ts b/sources/main.ts
index 8849e8832..1fa13d40f 100644
--- a/sources/main.ts
+++ b/sources/main.ts
@@ -1,4 +1,5 @@
 import {BaseContext, Builtins, Cli}    from 'clipanion';
+import type {UsageError}               from 'clipanion';
 
 import {version as corepackVersion}    from '../package.json';
 
@@ -79,9 +80,17 @@ export async function runMain(argv: Array<string>) {
       process.exitCode ??= code;
     }
   } else {
-    await engine.executePackageManagerRequest(request, {
-      cwd: process.cwd(),
-      args: restArgs,
-    });
+    try {
+      await engine.executePackageManagerRequest(request, {
+        cwd: process.cwd(),
+        args: restArgs,
+      });
+    } catch (error: UsageError | any) {
+      if (error?.name === `UsageError`) {
+        console.error(error.message);
+        process.exit(1);
+      }
+      throw error;
+    }
   }
 }