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
---
/dev/null | 0
quartz/cli/handlers.js | 34 +++++++++++++++++++++++++++++-----
quartz/cli/helpers.js | 4 +++-
3 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/content/.gitkeep b/content/.gitkeep
deleted file mode 100644
index e69de29..0000000
--- a/content/.gitkeep
+++ /dev/null
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!"))
diff --git a/quartz/cli/helpers.js b/quartz/cli/helpers.js
index b07d19e..702a1b7 100644
--- a/quartz/cli/helpers.js
+++ b/quartz/cli/helpers.js
@@ -36,7 +36,9 @@
const flags = ["--no-rebase", "--autostash", "-s", "recursive", "-X", "ours", "--no-edit"]
const out = spawnSync("git", ["pull", ...flags, origin, branch], { stdio: "inherit" })
if (out.stderr) {
- throw new Error(`Error while pulling updates: ${out.stderr}`)
+ throw new Error(chalk.red(`Error while pulling updates: ${out.stderr}`))
+ } else if (out.status !== 0) {
+ throw new Error(chalk.red("Error while pulling updates"))
}
}
--
Gitblit v1.10.0