text: const axios = require("axios");
  const fs = require("fs");
  const { spawnSync } = require("child_process");
  const runCommand = (command, args) =>
    spawnSync(command, args)
      .stdout.toString()
      .replace(/\n/g, "");
  
  const FAIL_ON_ERROR = false;
  const PW_BUILD_DATA_DIR = "./.postwoman";
  const IS_DEV_MODE = process.argv.includes("--dev");
  
  try {
    (async () => {
      // Create the build data directory if it does not exist.
      if (!fs.existsSync(PW_BUILD_DATA_DIR)) {
        fs.mkdirSync(PW_BUILD_DATA_DIR);
      }
  
      let version = {};
      // Get the current version name as the tag from Git.
      version.name =
        process.env.TRAVIS_TAG ||
        runCommand("git", ["tag --sort=committerdate | tail -1"]);
  
      // FALLBACK: If version.name was unset, let's grab it from GitHub.
      if (!version.name) {
        version.name = (
          await axios
            .get("https://api.github.com/repos/liyasthomas/postwoman/releases")
            // If we can't get it from GitHub, we'll resort to getting it from package.json
            .catch(ex => ({
              data: [
                {
                  tag_name: require("./package.json").version
                }
              ]
            }))
        ).data[0]["tag_name"];
      }
  
      // Get the current version hash as the short hash from Git.
      version.hash = runCommand("git", ["rev-parse", "--short", "HEAD"]);
      // Get the 'variant' name as the branch, if it's not master.
      version.variant =
        process.env.TRAVIS_BRANCH ||
        runCommand("git", ["branch"])
          .split("* ")[1]
          .split(" ")[0] + (IS_DEV_MODE ? " - DEV MODE" : "");
      if (["", "master"].includes(version.variant)) {
        delete version.variant;
      }
  
      // Write version data into a file
      fs.writeFileSync(
        PW_BUILD_DATA_DIR + "/version.json",
        JSON.stringify(version)
      );
    })();
  } catch (ex) {
    console.error(ex);
    process.exit(FAIL_ON_ERROR ? 1 : 0);
  }
  