Răsfoiți Sursa

Prefix dot files with _. in templates

Loris Leiva 1 an în urmă
părinte
comite
a7e46b7d06

+ 5 - 0
.changeset/lovely-actors-jog.md

@@ -0,0 +1,5 @@
+---
+"create-solana-program": patch
+---
+
+Prefix dot files with \_. in templates

+ 1 - 5
template/base/.gitignore → template/base/_.gitignore

@@ -1,4 +1,5 @@
 .anchor
+.cargo
 .DS_Store
 **/.DS_Store
 **/target
@@ -6,8 +7,3 @@
 node_modules
 test-ledger
 dist
-.amman
-.cargo
-.bin
-.programs
-.env.*

+ 0 - 0
template/clients/js/clients/js/.eslintrc.js → template/clients/js/clients/js/_.eslintrc.js


+ 0 - 0
template/clients/js/clients/js/.gitignore → template/clients/js/clients/js/_.gitignore


+ 0 - 0
template/clients/js/clients/js/.prettierrc.json → template/clients/js/clients/js/_.prettierrc.json


+ 14 - 9
utils/renderTemplates.ts

@@ -16,7 +16,7 @@ import {
  * Renders a template folder/file to the provided destination,
  * by recursively copying all files under the source directory,
  * with the following exception:
- *   - `_filename` are renamed to `.filename`.
+ *   - `_.filename` are renamed to `.filename`.
  *   - `package.json` files are merged.
  *   - `.gitignore` files are concatenated.
  *   - `.njk` files are rendered as nunjucks templates
@@ -40,6 +40,19 @@ export function renderTemplate(ctx: RenderContext, src: string, dest: string) {
 
   const filename = path.basename(src);
 
+  // Rename `_.file` to `.file` in the destination.
+  if (filename.startsWith('_.')) {
+    dest = path.resolve(path.dirname(dest), filename.replace(/^_./, '.'));
+  }
+
+  // Concatenate .gitignore files.
+  if (filename === '_.gitignore' && fs.existsSync(dest)) {
+    const existing = fs.readFileSync(dest, 'utf8');
+    const newGitignore = fs.readFileSync(src, 'utf8');
+    fs.writeFileSync(dest, existing + '\n' + newGitignore);
+    return;
+  }
+
   // Merge package.json files.
   if (filename === 'package.json' && fs.existsSync(dest)) {
     const existing = JSON.parse(fs.readFileSync(dest, 'utf8'));
@@ -49,14 +62,6 @@ export function renderTemplate(ctx: RenderContext, src: string, dest: string) {
     return;
   }
 
-  // Append to existing .gitignore.
-  if (filename === '.gitignore' && fs.existsSync(dest)) {
-    const existing = fs.readFileSync(dest, 'utf8');
-    const newGitignore = fs.readFileSync(src, 'utf8');
-    fs.writeFileSync(dest, existing + '\n' + newGitignore);
-    return;
-  }
-
   // Render nunjucks templates.
   if (filename.endsWith('.njk')) {
     dest = dest.replace(/\.njk$/, '');