quickprojects
Version:
QuickProjects makes it easy to create templates for programming projects without having to use an IDE.
75 lines (53 loc) • 2.99 kB
JavaScript
var chalk = require('chalk');
var fs = require('fs-extra');
module.exports = {
createLWJGL: (projectName) => {
// Tell the user that the project is being created.
console.log('Creating a new LWJGL project named ' + chalk.magenta(projectName) );
// Create the project folder.
try {
fs.ensureDirSync('./' + projectName);
console.log( chalk.green('Created project folder!\n') );
} catch(err) {
console.log( chalk.red("ERROR: " + err) );
}
// Make the src, resources, and external jars folders.
console.log( chalk.blue('Creating src folder...') );
try {
fs.ensureDirSync('./' + projectName + '/src/main/java/mainPackage');
console.log( chalk.green('Done creating src/main/java folder!') );
} catch(err) {
console.log( chalk.red("ERROR: " + err) );
}
console.log( chalk.blue('\nCreating resources folder...') );
try {
fs.ensureDirSync('./' + projectName + '/src/resources');
console.log( chalk.green('Done creating resources folder!') );
} catch(err) {
console.log( chalk.red("ERROR: " + err) );
};
console.log( chalk.blue('\nCreating jars folder...') );
try {
fs.ensureDirSync('./' + projectName + '/jars');
console.log( chalk.green('Done creating jars folder!') );
} catch(err) {
console.log( chalk.red("ERROR: " + err) );
};
// Create the build.gradle file.
const buildgradle_file = fs.readFileSync('/usr/local/lib/node_modules/quickprojects/templateGradles/TGF_LWJGL.txt', 'UTF-8');
fs.outputFileSync('./'+projectName+'/build.gradle', buildgradle_file);
console.log( chalk.green('\nGenerated build.gradle file!') );
// Create the template java file, input manager, and mac runner classes.
const javaTemplate = fs.readFileSync('/usr/local/lib/node_modules/quickprojects/templateFiles/TLWJGLF.txt', 'UTF-8');
fs.outputFileSync('./'+projectName+'/src/main/java/mainPackage/Main.java', javaTemplate);
const inputTemplate = fs.readFileSync('/usr/local/lib/node_modules/quickprojects/templateFiles/LWJGLInput.txt', 'UTF-8');
fs.outputFileSync('./'+projectName+'/src/main/java/mainPackage/InputManager.java', inputTemplate);
const MRTemplate = fs.readFileSync('/usr/local/lib/node_modules/quickprojects/templateFiles/LWJGLMacRunner.txt', 'UTF-8');
fs.outputFileSync('./'+projectName+'/src/main/java/mainPackage/MacRunner.java', MRTemplate);
console.log('\nFinished creating ' + chalk.magenta(projectName) + ' in ' + chalk.cyan('./' + projectName) );
console.log('To run your application, navigate to your project folder with '
+ chalk.cyan('cd ' + projectName) + ',\nThen type ' + chalk.cyan('gradle run') );
}
}
;