@@ -12,6 +12,7 @@ const DIST_FILE = join(ROOT, './changelog.generated.md');
12
12
const HEADER_TEMPLATE = join ( __dirname , '../../template/changelog-header.hbs' ) ;
13
13
const MAIN_TEMPLATE = join ( __dirname , '../../template/changelog-main.hbs' ) ;
14
14
const COMMIT_TEMPLATE = join ( __dirname , '../../template/changelog-commit.hbs' ) ;
15
+ const CHANGELOG_MD = join ( ROOT , './docs/markdown/changelog.zh-CN.md' ) ;
15
16
16
17
const mainTemplate = readFileSync ( MAIN_TEMPLATE , 'utf-8' ) ;
17
18
const headerPartial = readFileSync ( HEADER_TEMPLATE , 'utf-8' ) ;
@@ -58,6 +59,9 @@ export async function changelog(): Promise<void> {
58
59
preset : 'angular' ,
59
60
releaseCount : 2 ,
60
61
} ,
62
+ null ,
63
+ null ,
64
+ null ,
61
65
{
62
66
mainTemplate,
63
67
headerPartial,
@@ -66,9 +70,32 @@ export async function changelog(): Promise<void> {
66
70
} ,
67
71
)
68
72
. pipe ( createWriteStream ( DIST_FILE ) )
69
- . on ( 'close' , ( ) => {
73
+ . on ( 'close' , async ( ) => {
70
74
spinner . succeed ( `Changelog generated at ${ slimPath ( DIST_FILE ) } ` ) ;
75
+ await updateChangelog ( spinner ) ;
71
76
resolve ( ) ;
72
77
} ) ;
73
78
} ) ;
74
79
}
80
+
81
+ async function updateChangelog ( spinner : ora . Ora ) {
82
+ fse . readFile ( CHANGELOG_MD , ( err , data ) => {
83
+ if ( err ) throw err ;
84
+
85
+ const content = data . toString ( ) ;
86
+ const regex = / # # 更 新 内 容 / g;
87
+ const match = regex . exec ( content ) ;
88
+ if ( ! match ) {
89
+ console . log ( '未找到更新内容' ) ;
90
+ return ;
91
+ }
92
+ const generatedText = readFileSync ( DIST_FILE ) ;
93
+ const insertIndex = match . index + match [ 0 ] . length + 4 ;
94
+ const updatedContent =
95
+ content . slice ( 0 , insertIndex ) + generatedText + '\r\n' + content . slice ( insertIndex ) ;
96
+ fse . writeFile ( CHANGELOG_MD , updatedContent , 'utf8' , ( err ) => {
97
+ if ( err ) throw err ;
98
+ spinner . succeed ( `更新日志插入成功` ) ;
99
+ } ) ;
100
+ } ) ;
101
+ }
0 commit comments