Adam Brangenberg
2023-07-31 cbae88fc4e9b98764cfccca2e85f265c4b894573
quartz/bootstrap-cli.mjs
@@ -11,6 +11,7 @@
import { rimraf } from "rimraf"
import prettyBytes from "pretty-bytes"
import { spawnSync } from "child_process"
import { transform } from "lightningcss"
const UPSTREAM_NAME = "upstream"
const QUARTZ_SOURCE_BRANCH = "v4-alpha"
@@ -79,6 +80,11 @@
    default: 8080,
    describe: "port to serve Quartz on",
  },
  bundleInfo: {
    boolean: true,
    default: false,
    describe: "show detailed bundle information",
  },
}
function escapePath(fp) {
@@ -242,6 +248,8 @@
    )
    spawnSync("git", ["pull", UPSTREAM_NAME, QUARTZ_SOURCE_BRANCH], { stdio: "inherit" })
    await popContentFolder(contentFolder)
    console.log("Ensuring dependencies are up to date")
    spawnSync("npm", ["i"], { stdio: "inherit" })
    console.log(chalk.green("Done!"))
  })
  .command("sync", "Sync your Quartz to and from GitHub.", SyncArgv, async (argv) => {
@@ -284,6 +292,7 @@
        outfile: path.join("quartz", cacheFile),
        bundle: true,
        keepNames: true,
        minify: true,
        platform: "node",
        format: "esm",
        jsx: "automatic",
@@ -294,6 +303,7 @@
        plugins: [
          sassPlugin({
            type: "css-text",
            cssImports: true,
          }),
          {
            name: "inline-script-loader",
@@ -315,6 +325,7 @@
                    sourcefile,
                  },
                  write: false,
                  minify: true,
                  bundle: true,
                  platform: "browser",
                  format: "esm",
@@ -332,13 +343,10 @@
      .catch((err) => {
        console.error(`${chalk.red("Couldn't parse Quartz configuration:")} ${fp}`)
        console.log(`Reason: ${chalk.grey(err)}`)
        console.log(
          "hint: make sure all the required dependencies are installed (run `npm install`)",
        )
        process.exit(1)
      })
    if (argv.verbose) {
    if (argv.bundleInfo) {
      const outputFileName = "quartz/.quartz-cache/transpiled-build.mjs"
      const meta = result.metafile.outputs[outputFileName]
      console.log(
@@ -346,6 +354,7 @@
          meta.bytes,
        )})`,
      )
      console.log(await esbuild.analyzeMetafile(result.metafile, { color: true }))
    }
    const { default: buildQuartz } = await import(cacheFile)