From 1b92440009965853241d6db44ae233cf62522a75 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 11 Dec 2023 18:38:55 +0000
Subject: [PATCH] fix: better error handling on spawnsync failures
---
quartz/cli/handlers.js | 34 +++++++++++++++++++++++++++++-----
1 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/quartz/cli/handlers.js b/quartz/cli/handlers.js
index 7a83c5d..8fd0912 100644
--- a/quartz/cli/handlers.js
+++ b/quartz/cli/handlers.js
@@ -443,11 +443,23 @@
console.log(
"Pulling updates... you may need to resolve some `git` conflicts if you've made changes to components or plugins.",
)
- gitPull(UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH)
+
+ try {
+ gitPull(UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH)
+ } catch {
+ console.log(chalk.red("An error occured above while pulling updates."))
+ await popContentFolder(contentFolder)
+ return
+ }
+
await popContentFolder(contentFolder)
console.log("Ensuring dependencies are up to date")
- spawnSync("npm", ["i"], { stdio: "inherit" })
- console.log(chalk.green("Done!"))
+ const res = spawnSync("npm", ["i"], { stdio: "inherit" })
+ if (res.status === 0) {
+ console.log(chalk.green("Done!"))
+ } else {
+ console.log(chalk.red("An error occurred above while installing dependencies."))
+ }
}
/**
@@ -504,13 +516,25 @@
console.log(
"Pulling updates from your repository. You may need to resolve some `git` conflicts if you've made changes to components or plugins.",
)
- gitPull(ORIGIN_NAME, QUARTZ_SOURCE_BRANCH)
+ try {
+ gitPull(ORIGIN_NAME, QUARTZ_SOURCE_BRANCH)
+ } catch {
+ console.log(chalk.red("An error occured above while pulling updates."))
+ await popContentFolder(contentFolder)
+ return
+ }
}
await popContentFolder(contentFolder)
if (argv.push) {
console.log("Pushing your changes")
- spawnSync("git", ["push", "-f", ORIGIN_NAME, QUARTZ_SOURCE_BRANCH], { stdio: "inherit" })
+ const res = spawnSync("git", ["push", "-f", ORIGIN_NAME, QUARTZ_SOURCE_BRANCH], {
+ stdio: "inherit",
+ })
+ if (res.status !== 0) {
+ console.log(chalk.red(`An error occurred above while pushing to remote ${ORIGIN_NAME}.`))
+ return
+ }
}
console.log(chalk.green("Done!"))
--
Gitblit v1.10.0