@@ -16,7 +16,7 @@ import {
1616 * Renders a template folder/file to the provided destination,
1717 * by recursively copying all files under the source directory,
1818 * with the following exception:
19- * - `_filename ` are renamed to `.filename`.
19+ * - `_.filename ` are renamed to `.filename`.
2020 * - `package.json` files are merged.
2121 * - `.gitignore` files are concatenated.
2222 * - `.njk` files are rendered as nunjucks templates
@@ -40,6 +40,19 @@ export function renderTemplate(ctx: RenderContext, src: string, dest: string) {
4040
4141 const filename = path . basename ( src ) ;
4242
43+ // Rename `_.file` to `.file` in the destination.
44+ if ( filename . startsWith ( '_.' ) ) {
45+ dest = path . resolve ( path . dirname ( dest ) , filename . replace ( / ^ _ ./ , '.' ) ) ;
46+ }
47+
48+ // Concatenate .gitignore files.
49+ if ( filename === '_.gitignore' && fs . existsSync ( dest ) ) {
50+ const existing = fs . readFileSync ( dest , 'utf8' ) ;
51+ const newGitignore = fs . readFileSync ( src , 'utf8' ) ;
52+ fs . writeFileSync ( dest , existing + '\n' + newGitignore ) ;
53+ return ;
54+ }
55+
4356 // Merge package.json files.
4457 if ( filename === 'package.json' && fs . existsSync ( dest ) ) {
4558 const existing = JSON . parse ( fs . readFileSync ( dest , 'utf8' ) ) ;
@@ -49,14 +62,6 @@ export function renderTemplate(ctx: RenderContext, src: string, dest: string) {
4962 return ;
5063 }
5164
52- // Append to existing .gitignore.
53- if ( filename === '.gitignore' && fs . existsSync ( dest ) ) {
54- const existing = fs . readFileSync ( dest , 'utf8' ) ;
55- const newGitignore = fs . readFileSync ( src , 'utf8' ) ;
56- fs . writeFileSync ( dest , existing + '\n' + newGitignore ) ;
57- return ;
58- }
59-
6065 // Render nunjucks templates.
6166 if ( filename . endsWith ( '.njk' ) ) {
6267 dest = dest . replace ( / \. n j k $ / , '' ) ;
0 commit comments