@@ -10,19 +10,36 @@ interface ReadmeFooterArgs {
1010export async function runReadmeFooter ( args : string [ ] ) {
1111 const parsed = parseArgs ( args ) ;
1212
13- const [ readme , footer ] = await Promise . all ( [
14- fs . readFile ( parsed . source , 'utf8' ) ,
15- fs . readFile ( parsed . footer , 'utf8' )
16- ] ) ;
13+ const readme = await fs . readFile ( parsed . source , 'utf8' ) ;
14+
15+ let footer : string | null = null ;
16+ try {
17+ footer = await fs . readFile ( parsed . footer , 'utf8' ) ;
18+ } catch ( err : any ) {
19+ if ( err . code === 'ENOENT' ) {
20+ console . log ( `[makage] warning: ${ parsed . footer } not found, skipping footer` ) ;
21+ } else {
22+ throw err ;
23+ }
24+ }
25+
26+ const combined = footer
27+ ? `${ readme . trimEnd ( ) } \n\n---\n\n${ footer . trim ( ) } \n`
28+ : readme ;
1729
18- const combined = `${ readme . trimEnd ( ) } \n\n---\n\n${ footer . trim ( ) } \n` ;
1930 const destDir = path . dirname ( parsed . dest ) ;
2031 await fs . mkdir ( destDir , { recursive : true } ) ;
2132 await fs . writeFile ( parsed . dest , combined , 'utf8' ) ;
2233
23- console . log (
24- `[makage] wrote README with footer: ${ parsed . source } + ${ parsed . footer } -> ${ parsed . dest } `
25- ) ;
34+ if ( footer ) {
35+ console . log (
36+ `[makage] wrote README with footer: ${ parsed . source } + ${ parsed . footer } -> ${ parsed . dest } `
37+ ) ;
38+ } else {
39+ console . log (
40+ `[makage] wrote README: ${ parsed . source } -> ${ parsed . dest } `
41+ ) ;
42+ }
2643}
2744
2845function parseArgs ( args : string [ ] ) : ReadmeFooterArgs {
0 commit comments