Răsfoiți Sursa

Fix nested target directory passed as argument

Loris Leiva 1 an în urmă
părinte
comite
2754cb9f85
2 a modificat fișierele cu 10 adăugiri și 5 ștergeri
  1. 1 1
      index.ts
  2. 9 4
      utils/getInputs.ts

+ 1 - 1
index.ts

@@ -49,7 +49,7 @@ function renderTemplates(ctx: RenderContext) {
 
 function createOrEmptyTargetDirectory(ctx: RenderContext) {
   if (!fs.existsSync(ctx.targetDirectory)) {
-    fs.mkdirSync(ctx.targetDirectory);
+    fs.mkdirSync(ctx.targetDirectory, { recursive: true });
   } else if (ctx.shouldOverride) {
     emptyDirectory(ctx.targetDirectory);
   } else {

+ 9 - 4
utils/getInputs.ts

@@ -84,7 +84,7 @@ async function getInputsFromPrompts(
       [
         {
           name: "programName",
-          type: argInputs.targetDirectoryName ? null : "text",
+          type: argInputs.programName ? null : "text",
           message: language.programName.message,
           initial: () => defaultInputs.programName,
         },
@@ -209,6 +209,10 @@ async function getInputsFromPrompts(
         },
       }
     );
+
+    // Add a line break after the prompts
+    console.log("");
+
     return parsePromptInputs(promptInputs);
   } catch (cancelled) {
     console.log(cancelled.message);
@@ -290,10 +294,11 @@ function getDefaultInputs(partialInputs: Partial<Inputs>): Inputs {
   const organizationName = kebabCase(
     partialInputs.organizationName ?? "solana-program"
   );
+  const parsedTargetDirectoryName = partialInputs.targetDirectoryName
+    ? partialInputs.targetDirectoryName.split("/").pop()
+    : "";
   const programName = kebabCase(
-    partialInputs.programName ??
-      partialInputs.targetDirectoryName ??
-      "my-program"
+    partialInputs.programName ?? (parsedTargetDirectoryName || "my-program")
   );
   const programCrateName =
     partialInputs.programCrateName ?? `${organizationName}-${programName}`;