فهرست منبع

Add lib name options to CLI arguments

Loris Leiva 1 سال پیش
والد
کامیت
7249f29d6f
2فایلهای تغییر یافته به همراه20 افزوده شده و 0 حذف شده
  1. 5 0
      README.md
  2. 15 0
      utils/inputArgs.ts

+ 5 - 0
README.md

@@ -67,6 +67,11 @@ pnpm create solana-program --solana 1.18
 
 # Force the creation of the program repository even if the directory is not empty.
 pnpm create solana-program --force
+
+# Override the library names.
+pnpm create solana-program --program-crate-name acme-counter
+pnpm create solana-program --rust-client-crate-name acme-counter-client
+pnpm create solana-program --js-client-package-name @acme/counter
 ```
 
 ## Existing Anchor programs

+ 15 - 0
utils/inputArgs.ts

@@ -8,9 +8,12 @@ type ArgInputs = {
   anchorProgram: boolean;
   clients: Array<'js' | 'rust'>;
   force: boolean;
+  jsClientPackageName?: string;
   noClients: boolean;
   organizationName?: string;
+  programCrateName?: string;
   programName?: string;
+  rustClientCrateName?: string;
   rustVersion?: string;
   shankProgram: boolean;
   solanaVersion?: string;
@@ -28,9 +31,12 @@ export function getInputsFromArgs(): Partial<Inputs> {
       client: { type: 'string', multiple: true },
       default: { type: 'boolean', short: 'd' },
       force: { type: 'boolean' },
+      jsClientPackageName: { type: 'string' },
       'no-clients': { type: 'boolean' },
       org: { type: 'string' },
+      programCrateName: { type: 'string' },
       rust: { type: 'string' },
+      rustClientCrateName: { type: 'string' },
       shank: { type: 'boolean' },
       solana: { type: 'string' },
     },
@@ -42,9 +48,12 @@ export function getInputsFromArgs(): Partial<Inputs> {
     anchorProgram: options.anchor ?? false,
     clients: options.client,
     force: options.force ?? false,
+    jsClientPackageName: options.jsClientPackageName,
     noClients: options['no-clients'] ?? false,
     organizationName: options.org,
+    programCrateName: options.programCrateName,
     programName: positionals[1],
+    rustClientCrateName: options.rustClientCrateName,
     rustVersion: options.rust,
     shankProgram: options.shank ?? false,
     solanaVersion: options.solana,
@@ -65,6 +74,12 @@ function parseArgInputs(argInputs: ArgInputs): Partial<Inputs> {
   if (argInputs.solanaVersion) inputs.solanaVersion = argInputs.solanaVersion;
   if (argInputs.targetDirectoryName)
     inputs.targetDirectoryName = argInputs.targetDirectoryName;
+  if (argInputs.jsClientPackageName)
+    inputs.jsClientPackageName = argInputs.jsClientPackageName;
+  if (argInputs.programCrateName)
+    inputs.programCrateName = argInputs.programCrateName;
+  if (argInputs.rustClientCrateName)
+    inputs.rustClientCrateName = argInputs.rustClientCrateName;
   if (argInputs.force) inputs.shouldOverride = true;
   if (argInputs.useDefaults) inputs.useDefaults = true;