| 
									
										
										
										
											2018-04-05 14:24:37 +03:00
										 |  |  | #!/usr/bin/env node
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Imports
 | 
					
						
							|  |  |  | const {readFileSync, writeFileSync} = require('fs'); | 
					
						
							|  |  |  | const {join, resolve} = require('path'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Constants
 | 
					
						
							|  |  |  | const SRC_DIR = resolve(__dirname, '../src'); | 
					
						
							|  |  |  | const DIST_DIR = resolve(__dirname, '../dist'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Run
 | 
					
						
							| 
									
										
										
										
											2019-01-19 14:29:42 +01:00
										 |  |  | _main(); | 
					
						
							| 
									
										
										
										
											2018-04-05 14:24:37 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Functions - Definitions
 | 
					
						
							|  |  |  | function _main() { | 
					
						
							|  |  |  |   const srcIndexPath = join(DIST_DIR, 'index.html'); | 
					
						
							|  |  |  |   const src404BodyPath = join(SRC_DIR, '404-body.html'); | 
					
						
							|  |  |  |   const dst404PagePath = join(DIST_DIR, '404.html'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const srcIndexContent = readFileSync(srcIndexPath, 'utf8'); | 
					
						
							|  |  |  |   const src404BodyContent = readFileSync(src404BodyPath, 'utf8'); | 
					
						
							|  |  |  |   const dst404PageContent = srcIndexContent.replace(/<body>[\s\S]+<\/body>/, src404BodyContent); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (dst404PageContent === srcIndexContent) { | 
					
						
							|  |  |  |     throw new Error( | 
					
						
							|  |  |  |         'Failed to generate \'404.html\'. ' + | 
					
						
							|  |  |  |         'The content of \'index.html\' does not match the expected pattern.'); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   writeFileSync(dst404PagePath, dst404PageContent); | 
					
						
							|  |  |  | } |