@@ -56,28 +56,31 @@ const cli = meow(`
5656 } ,
5757} ) ;
5858
59- ( async ( ) => {
60- try {
61- const { rename} = cli . flags ;
62- const stringTemplate = '{{basename}}' ;
63- if ( rename && rename . includes ( stringTemplate ) ) {
64- cli . flags . rename = basename => rename . replace ( stringTemplate , basename ) ;
65- }
59+ try {
60+ const { rename} = cli . flags ;
61+ const stringTemplate = '{{basename}}' ;
62+ if ( rename ?. includes ( stringTemplate ) ) {
63+ cli . flags . rename = basename => {
64+ const parts = basename . split ( '.' ) ;
65+ const fileExtension = parts . length > 1 ? `.${ parts . pop ( ) } ` : '' ;
66+ const nameWithoutExtension = parts . join ( '.' ) ;
67+ return rename . replace ( stringTemplate , nameWithoutExtension ) + fileExtension ;
68+ } ;
69+ }
6670
67- await cpy ( cli . input , cli . input . pop ( ) , {
68- cwd : cli . flags . cwd ,
69- rename : cli . flags . rename ,
70- overwrite : cli . flags . overwrite ,
71- dot : cli . flags . dot ,
72- flat : cli . flags . flat ,
73- concurrency : cli . flags . concurrency ,
74- } ) ;
75- } catch ( error ) {
76- if ( error . name === 'CpyError' ) {
77- console . error ( error . message ) ;
78- process . exit ( 1 ) ;
79- } else {
80- throw error ;
81- }
71+ await cpy ( cli . input , cli . input . pop ( ) , {
72+ cwd : cli . flags . cwd ,
73+ rename : cli . flags . rename ,
74+ overwrite : cli . flags . overwrite ,
75+ dot : cli . flags . dot ,
76+ flat : cli . flags . flat ,
77+ concurrency : cli . flags . concurrency ,
78+ } ) ;
79+ } catch ( error ) {
80+ if ( error . name === 'CpyError' ) {
81+ console . error ( error . message ) ;
82+ process . exit ( 1 ) ;
83+ } else {
84+ throw error ;
8285 }
83- } ) ( ) ;
86+ }
0 commit comments