index.js 4.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/usr/bin/env node
  2. import "source-map-support/register.js";
  3. import chalk from "chalk";
  4. import { readFile } from "fs/promises";
  5. import inquirer from "inquirer";
  6. import ora from "ora";
  7. import { Command } from "commander";
  8. import getDiscordAppUser from "./functions/getDiscordAppUser.js";
  9. import { prefix } from "./util/prefix.js";
  10. if (!(await inPresenceRepo())) {
  11. console.error(prefix, chalk.redBright("This command can only be run in the presence repository"));
  12. process.exit(1);
  13. }
  14. const program = new Command();
  15. program
  16. .allowUnknownOption()
  17. .option("-c, --create", "create a new Presence")
  18. .option("-m, --modify", "modify an existing presence")
  19. .option("-t, --translate", "translate a presence")
  20. .parse(process.argv);
  21. const method = Object.keys(program.opts()).find(key => program.opts()[key] === true);
  22. if (method) {
  23. if (method === "create")
  24. console.log(chalk.green("?"), chalk.bold("What do you want to do?"), chalk.cyan("Create a new Presence"));
  25. await import(`./actions/${method}.js`);
  26. }
  27. else {
  28. const spinner = ora("Fetching Discord User...").start(), user = await getDiscordAppUser();
  29. spinner.stop();
  30. if (user)
  31. console.log(prefix, `Hello ${chalk.green(user.username)}!`);
  32. const { action } = await inquirer.prompt([
  33. {
  34. type: "list",
  35. name: "action",
  36. message: "What do you want to do?",
  37. choices: [
  38. {
  39. name: "Create a new Presence",
  40. value: "create",
  41. },
  42. {
  43. name: "Modify an existing Presence",
  44. value: "modify",
  45. },
  46. {
  47. name: "Translate a Presence",
  48. value: "translate",
  49. },
  50. ],
  51. },
  52. ]);
  53. if (action)
  54. await import(`./actions/${action}.js`);
  55. }
  56. async function inPresenceRepo() {
  57. try {
  58. const { name } = JSON.parse(await readFile("./package.json", "utf8"));
  59. return name === "presences";
  60. }
  61. catch {
  62. return false;
  63. }
  64. }
  65. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxRQUFRLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8saUJBQWlCLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLElBQUksQ0FBQyxDQUFDLE1BQU0sY0FBYyxFQUFFLENBQUMsRUFBRTtJQUM5QixPQUFPLENBQUMsS0FBSyxDQUNaLE1BQU0sRUFDTixLQUFLLENBQUMsU0FBUyxDQUFDLHlEQUF5RCxDQUFDLENBQzFFLENBQUM7SUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ2hCO0FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUM5QixPQUFPO0tBQ0wsa0JBQWtCLEVBQUU7S0FDcEIsTUFBTSxDQUFDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQztLQUMvQyxNQUFNLENBQUMsY0FBYyxFQUFFLDZCQUE2QixDQUFDO0tBQ3JELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQztLQUNqRCxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBRXRCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQ25DLENBQUM7QUFFRixJQUFJLE1BQU0sRUFBRTtJQUNYLElBQUksTUFBTSxLQUFLLFFBQVE7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FDVixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FDbkMsQ0FBQztJQUNILE1BQU0sTUFBTSxDQUFDLGFBQWEsTUFBTSxLQUFLLENBQUMsQ0FBQztDQUN2QztLQUFNO0lBQ04sTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUMsS0FBSyxFQUFFLEVBQ3RELElBQUksR0FBRyxNQUFNLGlCQUFpQixFQUFFLENBQUM7SUFDbEMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRWYsSUFBSSxJQUFJO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBcUI7UUFDNUQ7WUFDQyxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLHlCQUF5QjtZQUNsQyxPQUFPLEVBQUU7Z0JBQ1I7b0JBQ0MsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsS0FBSyxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0MsSUFBSSxFQUFFLDZCQUE2QjtvQkFDbkMsS0FBSyxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0MsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsS0FBSyxFQUFFLFdBQVc7aUJBQ2xCO2FBQ0Q7U0FDRDtLQUNELENBQUMsQ0FBQztJQUNILElBQUksTUFBTTtRQUFFLE1BQU0sTUFBTSxDQUFDLGFBQWEsTUFBTSxLQUFLLENBQUMsQ0FBQztDQUNuRDtBQUVELEtBQUssVUFBVSxjQUFjO0lBQzVCLElBQUk7UUFDSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxLQUFLLFdBQVcsQ0FBQztLQUM1QjtJQUFDLE1BQU07UUFDUCxPQUFPLEtBQUssQ0FBQztLQUNiO0FBQ0YsQ0FBQyJ9