use checkout for pulling updates

This commit is contained in:
Jacky Zhao 2023-08-02 23:29:28 -07:00
parent 7941b0d87a
commit beb15ec1bd

View File

@ -13,6 +13,7 @@ import prettyBytes from "pretty-bytes"
import { spawnSync } from "child_process" import { spawnSync } from "child_process"
import { transform as cssTransform } from "lightningcss" import { transform as cssTransform } from "lightningcss"
const ORIGIN_NAME = "origin"
const UPSTREAM_NAME = "upstream" const UPSTREAM_NAME = "upstream"
const QUARTZ_SOURCE_BRANCH = "v4-alpha" const QUARTZ_SOURCE_BRANCH = "v4-alpha"
const cwd = process.cwd() const cwd = process.cwd()
@ -119,6 +120,13 @@ async function popContentFolder(contentFolder) {
await fs.promises.rm(contentCacheFolder, { force: true, recursive: true }) await fs.promises.rm(contentCacheFolder, { force: true, recursive: true })
} }
function gitPull(origin, branch) {
spawnSync("git", ["fetch", origin, branch], { stdio: "inherit" })
spawnSync("git", ["checkout", `${origin}/${branch}`, "--", ":(exclude)content"], {
stdio: "inherit",
}).error
}
yargs(hideBin(process.argv)) yargs(hideBin(process.argv))
.scriptName("quartz") .scriptName("quartz")
.version(version) .version(version)
@ -241,9 +249,7 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started.
console.log( console.log(
"Pulling updates... you may need to resolve some `git` conflicts if you've made changes to components or plugins.", "Pulling updates... you may need to resolve some `git` conflicts if you've made changes to components or plugins.",
) )
spawnSync("git", ["pull", "--rebase", "--autostash", UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH], { gitPull(UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH)
stdio: "inherit",
})
await popContentFolder(contentFolder) await popContentFolder(contentFolder)
console.log("Ensuring dependencies are up to date") console.log("Ensuring dependencies are up to date")
spawnSync("npm", ["i"], { stdio: "inherit" }) spawnSync("npm", ["i"], { stdio: "inherit" })
@ -268,18 +274,13 @@ See the [documentation](https://quartz.jzhao.xyz) for how to get started.
console.log( console.log(
"Pulling updates from your repository. You may need to resolve some `git` conflicts if you've made changes to components or plugins.", "Pulling updates from your repository. You may need to resolve some `git` conflicts if you've made changes to components or plugins.",
) )
spawnSync("git", ["pull", "--rebase", "--autostash", "origin", QUARTZ_SOURCE_BRANCH], { gitPull(ORIGIN_NAME, QUARTZ_SOURCE_BRANCH)
stdio: "inherit",
})
} }
await popContentFolder(contentFolder) await popContentFolder(contentFolder)
if (argv.push) { if (argv.push) {
console.log("Pushing your changes") console.log("Pushing your changes")
const args = argv.force spawnSync("git", ["push", ORIGIN_NAME, QUARTZ_SOURCE_BRANCH], { stdio: "inherit" })
? ["push", "-f", "origin", QUARTZ_SOURCE_BRANCH]
: ["push", "origin", QUARTZ_SOURCE_BRANCH]
spawnSync("git", args, { stdio: "inherit" })
} }
console.log(chalk.green("Done!")) console.log(chalk.green("Done!"))