42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const fs = require('fs');
 | |
| const path = require('path');
 | |
| 
 | |
| const {
 | |
|   reorderSteps,
 | |
|   createStepFile,
 | |
|   getChallengeSeed,
 | |
|   getProjectPath
 | |
| } = require('./utils');
 | |
| 
 | |
| const getLastStepFileContent = () => {
 | |
|   const filesArr = [];
 | |
|   fs.readdirSync(projectPath).forEach(fileName => {
 | |
|     if (
 | |
|       path.extname(fileName).toLowerCase() === '.md' &&
 | |
|       !fileName.endsWith('final.md')
 | |
|     ) {
 | |
|       filesArr.push(fileName);
 | |
|     }
 | |
|   });
 | |
| 
 | |
|   const fileName = filesArr[filesArr.length - 1];
 | |
|   let lastStepFileNum = fileName.split('.')[0].split('-')[1];
 | |
|   lastStepFileNum = parseInt(lastStepFileNum, 10);
 | |
|   if (filesArr.length !== lastStepFileNum) {
 | |
|     throw `Error: The last file step is ${lastStepFileNum} and there are ${filesArr.length} files.`;
 | |
|   }
 | |
| 
 | |
|   return {
 | |
|     nextStepNum: lastStepFileNum + 1,
 | |
|     challengeSeed: getChallengeSeed(projectPath + fileName)
 | |
|   };
 | |
| };
 | |
| 
 | |
| const projectPath = getProjectPath();
 | |
| 
 | |
| const { nextStepNum, challengeSeed } = getLastStepFileContent();
 | |
| 
 | |
| createStepFile({ stepNum: nextStepNum, projectPath, challengeSeed });
 | |
| console.log(`Sucessfully added step #${nextStepNum}`);
 | |
| reorderSteps();
 |