mirror of https://github.com/lukechilds/node.git
Browse Source
Currently there are three separate tick processor scripts for mac, windows, and linux. These have been replaced with a single node.js script to improve maintainability and remove the need to preserve parallel logic in these separate places. PR-URL: https://github.com/nodejs/node/pull/2868 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>v5.x
Matt Loring
9 years ago
committed by
Ben Noordhuis
5 changed files with 54 additions and 62 deletions
@ -1,23 +0,0 @@ |
|||
#!/usr/bin/env bash |
|||
|
|||
umask 077 |
|||
TEMP_SCRIPT_FILE="/tmp/node-tick-processor-input-script-$$" |
|||
tools_path=`cd $(dirname "$0");pwd` |
|||
v8_tools="$tools_path/../../deps/v8/tools" |
|||
|
|||
cat "$tools_path/polyfill.js" "$v8_tools/splaytree.js" "$v8_tools/codemap.js" \ |
|||
"$v8_tools/csvparser.js" "$v8_tools/consarray.js" \ |
|||
"$v8_tools/profile.js" "$v8_tools/profile_view.js" \ |
|||
"$v8_tools/logreader.js" "$v8_tools/tickprocessor.js" \ |
|||
"$v8_tools/SourceMap.js" \ |
|||
"$v8_tools/tickprocessor-driver.js" >> "$TEMP_SCRIPT_FILE" |
|||
|
|||
NODE=${NODE:-node} |
|||
|
|||
if [ ! -x "$NODE" ] && [ -x "$(dirname "$0")/../../node" ]; then |
|||
NODE="$(dirname "$0")/../../node" |
|||
fi |
|||
|
|||
"$NODE" "$TEMP_SCRIPT_FILE" $@ |
|||
|
|||
rm -f "$TEMP_SCRIPT_FILE" |
@ -1,7 +0,0 @@ |
|||
#!/bin/sh |
|||
|
|||
# A wrapper script to call 'linux-tick-processor' with Mac-specific settings. |
|||
|
|||
tools_path=`cd $(dirname "$0");pwd` |
|||
v8_tools="$tools_path/../../deps/v8/tools" |
|||
"$tools_path/linux-tick-processor" --mac --nm="$v8_tools/mac-nm" $@ |
@ -0,0 +1,51 @@ |
|||
'use strict'; |
|||
var cp = require('child_process'); |
|||
var fs = require('fs'); |
|||
var path = require('path'); |
|||
|
|||
var toolsPath = path.join(__dirname, '..', '..', 'deps', 'v8', 'tools'); |
|||
var scriptFiles = [ |
|||
path.join(__dirname, 'polyfill.js'), |
|||
path.join(toolsPath, 'splaytree.js'), |
|||
path.join(toolsPath, 'codemap.js'), |
|||
path.join(toolsPath, 'csvparser.js'), |
|||
path.join(toolsPath, 'consarray.js'), |
|||
path.join(toolsPath, 'csvparser.js'), |
|||
path.join(toolsPath, 'consarray.js'), |
|||
path.join(toolsPath, 'profile.js'), |
|||
path.join(toolsPath, 'profile_view.js'), |
|||
path.join(toolsPath, 'logreader.js'), |
|||
path.join(toolsPath, 'tickprocessor.js'), |
|||
path.join(toolsPath, 'SourceMap.js'), |
|||
path.join(toolsPath, 'tickprocessor-driver.js')]; |
|||
var tempScript = path.join(__dirname, 'tick-processor-tmp-' + process.pid); |
|||
|
|||
process.on('exit', function() { |
|||
try { fs.unlinkSync(tempScript); } catch (e) {} |
|||
}); |
|||
process.on('uncaughtException', function(err) { |
|||
try { fs.unlinkSync(tempScript); } catch (e) {} |
|||
throw err; |
|||
}); |
|||
|
|||
var inStreams = scriptFiles.map(function(f) { |
|||
return fs.createReadStream(f); |
|||
}); |
|||
var outStream = fs.createWriteStream(tempScript); |
|||
inStreams.reduce(function(prev, curr, i) { |
|||
prev.on('end', function() { |
|||
curr.pipe(outStream, { end: i === inStreams.length - 1}); |
|||
}); |
|||
return curr; |
|||
}); |
|||
inStreams[0].pipe(outStream, { end: false }); |
|||
outStream.on('close', function() { |
|||
var tickArguments = [tempScript]; |
|||
if (process.platform === 'darwin') { |
|||
tickArguments.push('--mac', '--nm=' + path.join(toolsPath, 'mac-nm')); |
|||
} else if (process.platform === 'win32') { |
|||
tickArguments.push('--windows'); |
|||
} |
|||
tickArguments.push.apply(tickArguments, process.argv.slice(2)); |
|||
var processTicks = cp.spawn(process.execPath, tickArguments, { stdio: 'inherit' }); |
|||
}); |
@ -1,19 +0,0 @@ |
|||
@echo off |
|||
setlocal |
|||
|
|||
SET tools_dir=%~dp0 |
|||
SET v8_tools=%tools_dir%..\..\deps\v8\tools\ |
|||
|
|||
SET temp_script=%TEMP%\node-tick-processor-input-script |
|||
|
|||
IF NOT DEFINED NODE (SET NODE=node.exe) |
|||
%NODE% --version 2> NUL |
|||
if %ERRORLEVEL%==9009 (SET NODE=%~dp0\..\..\Release\node.exe) |
|||
|
|||
|
|||
type %tools_dir%polyfill.js %v8_tools%splaytree.js %v8_tools%codemap.js^ |
|||
%v8_tools%csvparser.js %v8_tools%consarray.js %v8_tools%profile.js^ |
|||
%v8_tools%profile_view.js %v8_tools%logreader.js %v8_tools%SourceMap.js^ |
|||
%v8_tools%tickprocessor.js %v8_tools%tickprocessor-driver.js >> %temp_script% |
|||
%NODE% %temp_script% --windows %* |
|||
del %temp_script% |
Loading…
Reference in new issue