Procházet zdrojové kódy

Update snapshot script

Loris Leiva před 1 rokem
rodič
revize
94258feee8
3 změnil soubory, kde provedl 25 přidání a 13 odebrání
  1. 1 1
      .gitignore
  2. 24 4
      scripts/snapshot.mjs
  3. 0 8
      template/base/scripts/generate-idls.mjs

+ 1 - 1
.gitignore

@@ -5,4 +5,4 @@
 node_modules
 dist
 outfile.cjs
-playground
+submodules

+ 24 - 4
scripts/snapshot.mjs

@@ -2,28 +2,48 @@
 import fs from "node:fs";
 import "zx/globals";
 
-$.verbose = false;
+// $.verbose = false;
 
 const projects = {
   "counter-shank": ["--shank"],
   "counter-anchor": ["--shank"],
 };
 
-const playgroundDir = path.resolve(__dirname, "../playground/");
 const bin = path.resolve(__dirname, "../outfile.cjs");
-cd(playgroundDir);
+const submodulesDirectory = path.resolve(__dirname, "../submodules/");
+
+if (!fs.existsSync(submodulesDirectory)) {
+  fs.mkdirSync(submodulesDirectory);
+}
 
 for (const projectName in projects) {
-  const projectArgs = projects[projectName];
+  // Go the submodules directory before creating each project.
+  cd(submodulesDirectory);
 
+  // Remove the project if it already exists.
   const projectExists = fs.existsSync(projectName);
   if (projectExists) {
     fs.rmSync(projectName, { recursive: true, force: true });
   }
 
+  // Create the project.
   const verb = projectExists ? "Re-creating" : "Creating";
   echo(`${verb} project ${projectName}...`);
+  const projectArgs = projects[projectName];
   await $`node ${[bin, projectName, ...projectArgs, "--force", "--default"]}`;
+
+  // Go inside the created project.
+  const projectDirectory = path.resolve(submodulesDirectory, projectName);
+  cd(projectDirectory);
+  const pkg = require(path.resolve(projectDirectory, "package.json"));
+
+  // Install the project's dependencies.
+  await $`pnpm install`;
+
+  // Generate the clients.
+  if (pkg.scripts.generate) {
+    await $`pnpm generate`;
+  }
 }
 
 echo(chalk.green("All projects were created successfully!"));

+ 0 - 8
template/base/scripts/generate-idls.mjs

@@ -3,14 +3,6 @@ import "zx/globals";
 import { generateIdl } from "@metaplex-foundation/shank-js";
 import { getCargo, getProgramFolders } from "./utils.mjs";
 
-// REMOVE ME: START
-echo(chalk.red("This program doesn't use Shank."));
-echo("This is a temporary guard to prevent accidental execution.");
-echo("When the program uses Shank to generate its IDL,");
-echo("Remove this guard in `scripts/generate-idls.mjs`.");
-process.exit();
-// REMOVE ME: END
-
 const binaryInstallDir = path.join(__dirname, "..", ".cargo");
 
 getProgramFolders().forEach((folder) => {