29 lines
		
	
	
		
			919 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			919 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | #!/usr/bin/env node
 | ||
|  | 
 | ||
|  | // Imports
 | ||
|  | const {existsSync, readFileSync} = require('fs'); | ||
|  | const {join, resolve} = require('path'); | ||
|  | 
 | ||
|  | // Constants
 | ||
|  | const CONTENT_DIR = resolve(__dirname, '../../content'); | ||
|  | const IMAGES_DIR = join(CONTENT_DIR, 'images/bios'); | ||
|  | const CONTRIBUTORS_PATH = join(CONTENT_DIR, 'marketing/contributors.json'); | ||
|  | 
 | ||
|  | // Run
 | ||
|  | _main(); | ||
|  | 
 | ||
|  | // Functions - Definitions
 | ||
|  | function _main() { | ||
|  |   const contributors = JSON.parse(readFileSync(CONTRIBUTORS_PATH, 'utf8')); | ||
|  |   const expectedImages = Object.keys(contributors) | ||
|  |       .filter(key => !!contributors[key].picture) | ||
|  |       .map(key => join(IMAGES_DIR, contributors[key].picture)); | ||
|  |   const missingImages = expectedImages.filter(path => !existsSync(path)); | ||
|  | 
 | ||
|  |   if (missingImages.length > 0) { | ||
|  |     throw new Error( | ||
|  |         'The following pictures are referenced in \'contributors.json\' but do not exist:' + | ||
|  |         missingImages.map(path => `\n  - ${path}`).join('')); | ||
|  |   } | ||
|  | } |