@@ -696,48 +696,34 @@ function generateReleaseDatesChangelogBody(gren) {
696696 * @return {boolean }
697697 */
698698function createChangelog ( gren , body ) {
699+ var filePath = process . cwd ( ) + '/' + gren . options . changelogFilename ;
700+
699701 function createFile ( fileBody ) {
700- fs . writeFile ( gren . options . changelogFilename , fileBody , function ( err ) {
701- if ( err ) {
702- throw err ;
703- }
702+ fs . writeFileSync ( filePath , fileBody ) ;
704703
705- process . stdout . write ( '\n' + chalk . green ( 'The changelog file has been saved!\n' ) ) ;
704+ process . stdout . write ( '\n' + chalk . green ( 'The changelog file has been saved!\n' ) ) ;
706705
707- return true ;
708- } ) ;
706+ return Promise . resolve ( ) ;
709707 }
710708
711- try {
712- fs . readFile ( gren . options . changelogFilename , 'utf-8' , function ( err , data ) {
713- if ( err ) {
714- console . error ( chalk . red ( err ) ) ;
715- return ;
716- }
717-
718- var newReleaseName = body . match ( / ( # # \s [ \w \s . ] + ) / ) [ 0 ] ;
719-
720- if ( data . match ( newReleaseName ) ) {
721- if ( gren . options . force ) {
722- createFile ( body + '\n\n --- \n\n' + data . replace ( / ^ ( # \s ? \w * \n \n ) / g, '' ) ) ;
723-
724- return true ;
725- } else if ( gren . options . override ) {
726- createFile ( body ) ;
727-
728- return true ;
729- }
709+ if ( ! fs . existsSync ( filePath ) ) {
710+ return createFile ( body ) ;
711+ }
730712
731- console . error ( chalk . red ( '\nThis release is already in the changelog\n' ) ) ;
713+ var data = fs . readFileSync ( filePath , 'utf-8' ) ;
714+ var newReleaseName = body . match ( / ( # # \s [ \w \s . ] + ) / ) [ 0 ] ;
732715
733- return false ;
734- }
716+ if ( data . match ( newReleaseName ) ) {
717+ if ( gren . options . force ) {
718+ return createFile ( body + '\n\n --- \n\n' + data . replace ( / ^ ( # \s ? \w * \n \n ) / g, '' ) ) ;
719+ } else if ( gren . options . override ) {
720+ return createFile ( body ) ;
721+ }
735722
736- createFile ( body + '\n --- \n\n' + data . replace ( / ^ ( # \s ? \w * \n \n ) / g, '' ) ) ;
737- } ) ;
738- } catch ( e ) {
739- createFile ( body ) ;
723+ return Promise . reject ( 'This release is already in the changelog\n' ) ;
740724 }
725+
726+ return createFile ( body + '\n --- \n' + data . replace ( / ^ ( # \s ? \w * \n \n ) / g, '' ) ) ;
741727}
742728
743729/**
@@ -887,9 +873,6 @@ GithubReleaseNotes.prototype.changelog = function() {
887873 return generateReleaseDatesChangelogBody ( this )
888874 . then ( function ( changelogBody ) {
889875 return createChangelog ( gren , changelogBody ) ;
890- } )
891- . then ( function ( success ) {
892- return success ;
893876 } ) ;
894877} ;
895878
0 commit comments