UNPKG

tooltwist

Version:
133 lines (114 loc) 3.79 kB
var Log = require('./log'), Config = require('./config'), fs = require('fs'), mkdirp = require('mkdirp'); /* * Invoke Gradle to build and run the Tooltwist server. */ exports.runGradle = function(/*startCallback, endCallback*/) { Log.log("Starting Gradle to build and run the server."); Log.log(); Log.debug('isController:', Config.IS_CONTROLLER); // gradle tomcatRun -DTOOLTWIST_HOME=${TOOLTWIST_HOME} -DXms128m -DXmx512m // gradle run_tomcat_and_phase2 -DTOOLTWIST_HOME=${TOOLTWIST_HOME} -DXms128m -DXmx512m var task = Config.USE_PHASE2 ? 'run_tomcat_and_phase2' : 'designer'; Log.debug("task: " + task) var spawn = require('child_process').spawn; var args = [ task, '-DTOOLTWIST_HOME=' + Config.TOOLTWIST_HOME, '-DXms256m', '-DXmx1024m' ]; if (Log.getLevel() == Log.DEBUG) { args.push('-d'); } else if (Log.getLevel() == Log.INFO) { args.push('-i'); } else if (Log.getLevel() == Log.QUIET) { args.push('-q'); } var options = { cwd: Config.BUILD_DIR }; // Decide which gradle wrapper script to use var cmd ='./gradlew' //ZZZ check for Windows var isWin = /^win/.test(process.platform); if (isWin) { cmd ='gradlew.bat' } // Display useful debug Log.log('$ cd ', Config.BUILD_DIR) var debugMsg = '$ ' + cmd; for (var i = 0; i < args.length; i++) { debugMsg += ' ' + args[i]; } Log.log(debugMsg) // Run the command var child = spawn(cmd, args, options); // Echo the output of the gradle command child.stdout.on('data', function (data) { var str = '' + data; str = str.replace(/\n/g, "\n ") process.stdout.write(str); // Look for the message saying the server has started if (/The Server is running at http:/.test(data)) { Config.plugin.tomcatRunning(); Log.log(' Default log file is ' + Config.HIDDEN_DIR + '/tooltwist.log') // if (startCallback) { // startCallback(); // } } }); child.stderr.on('data', function (data) { var str = '' + data; str = str.replace(/\n/g, "\n ") process.stderr.write(str); }); // Handle the process completion. child.on('close', function (code) { Log.debug('child process exited with code ' + code); Config.plugin.afterPhase1(code); // if (endCallback) { // endCallback(code); // } }); }; /** * Check we have the gradle wrapper. This is a shell script (Unix) or batch * file (Windows) that will download gradle if it is not installed then run * the Gradle build. This is a standard Gradle feature. */ exports.checkGradleWrapper = function(targetDir) { Log.debug(); Log.debug('checkGradleWrapper()') Log.debug('create gradle wrapper in ' + targetDir); mkdirp.sync(targetDir + '/gradle/wrapper'); // gradlew var to = targetDir + '/gradlew'; if ( !fs.existsSync(to)) { var from = __dirname + "/../templates/gradleWrapper/gradlew" var output = fs.readFileSync(from, "utf8"); fs.writeFileSync(to, output, { encoding: 'utf8' }); } fs.chmodSync(to, '544'); // gradlew.bat var to = targetDir + '/gradlew.bat'; if ( !fs.existsSync(to)) { var from = __dirname + "/../templates/gradleWrapper/gradlew.bat" var output = fs.readFileSync(from, "utf8"); fs.writeFileSync(to, output, { encoding: 'utf8' }); } // gradle-wrapper.jar var to = targetDir + '/gradle/wrapper/gradle-wrapper.jar'; if ( !fs.existsSync(to)) { var from = __dirname + "/../templates/gradleWrapper/gradle/wrapper/gradle-wrapper.jar" var output = fs.readFileSync(from); fs.writeFileSync(to, output); } // gradle-wrapper.properties var to = targetDir + '/gradle/wrapper/gradle-wrapper.properties'; if ( !fs.existsSync(to)) { var from = __dirname + "/../templates/gradleWrapper/gradle/wrapper/gradle-wrapper.properties" var output = fs.readFileSync(from, "utf8"); fs.writeFileSync(to, output, { encoding: 'utf8' }); } }