From: Ben Beltran Date: Mon, 3 Jul 2017 06:21:02 +0000 (-0500) Subject: Fix generator when there are < max posts X-Git-Tag: 1.0.1~5 X-Git-Url: https://git.r.bdr.sh/rbdr/blog/commitdiff_plain/eccb3cc40e104fffaa89ef62b686659458021298?hp=5e265f9d81bcce30949e88850892ea5dacec7386 Fix generator when there are < max posts --- diff --git a/lib/blog.js b/lib/blog.js index 483577f..3b91943 100644 --- a/lib/blog.js +++ b/lib/blog.js @@ -112,20 +112,33 @@ module.exports = class Blog { for (let i = 0; i < this.maxPosts; ++i) { const sourcePath = Path.join(this.postsDirectory, `${i}`); - const assetsSource = Path.join(sourcePath, internals.kAssetsDirectoryName); - const postContentPath = await this._findBlogContent(sourcePath); - internals.debuglog(`Copying ${assetsSource} to ${assetsTarget}`); - await internals.ncp(assetsSource, assetsTarget); + try { + await internals.fs.access(this.postsDirectory); + + const assetsSource = Path.join(sourcePath, internals.kAssetsDirectoryName); + const postContentPath = await this._findBlogContent(sourcePath); + + internals.debuglog(`Copying ${assetsSource} to ${assetsTarget}`); + await internals.ncp(assetsSource, assetsTarget); - internals.debuglog(`Reading ${postContentPath}`); - const postContent = await internals.fs.readFile(postContentPath, { encoding: 'utf8' }); + internals.debuglog(`Reading ${postContentPath}`); + const postContent = await internals.fs.readFile(postContentPath, { encoding: 'utf8' }); - internals.debuglog('Parsing markdown'); - posts.push({ - html: Markdown.markdown.toHTML(postContent), - id: i + 1 - }); + internals.debuglog('Parsing markdown'); + posts.push({ + html: Markdown.markdown.toHTML(postContent), + id: i + 1 + }); + } + catch (error) { + if (error.code === internals.kFileNotFoundError) { + internals.debuglog(`Skipping ${i}`); + continue; + } + + throw error; + } } internals.debuglog(`Reading ${indexLocation}`);