Merge pull request #1705 from hammerandchisel/node-not-in-path

compile-coffee.py searches for node even on non-windows systems
This commit is contained in:
Cheng Zhao 2015-05-21 10:38:09 +08:00
commit 5e7d6f89e8

View file

@ -6,11 +6,15 @@ import sys
SOURCE_ROOT = os.path.dirname(os.path.dirname(__file__)) SOURCE_ROOT = os.path.dirname(os.path.dirname(__file__))
WINDOWS_NODE_PATHs = [ WINDOWS_NODE_PATHs = os.environ['PATH'].split(os.pathsep) + [
'C:/Program Files (x86)/nodejs', 'C:/Program Files (x86)/nodejs',
'C:/Program Files/nodejs', 'C:/Program Files/nodejs',
] + os.environ['PATH'].split(os.pathsep) ]
NIX_NODE_PATHs = os.environ['PATH'].split(os.pathsep) + [
'/usr/local/bin',
'/usr/bin',
'/bin',
]
def main(): def main():
input_file = sys.argv[1] input_file = sys.argv[1]
@ -18,20 +22,24 @@ def main():
coffee = os.path.join(SOURCE_ROOT, 'node_modules', 'coffee-script', 'bin', coffee = os.path.join(SOURCE_ROOT, 'node_modules', 'coffee-script', 'bin',
'coffee') 'coffee')
node = 'node'
if sys.platform in ['win32', 'cygwin']: if sys.platform in ['win32', 'cygwin']:
node = find_node() node = find_node(WINDOWS_NODE_PATHs, 'node.exe')
else:
node = find_node(NIX_NODE_PATHs, 'node')
if not node: if not node:
print 'Node.js not found in PATH for building atom-shell' print 'Node.js not found in PATH for building electron'
return 1 return 1
subprocess.check_call(['node', coffee, '-c', '-o', output_dir, input_file], subprocess.check_call(['node', coffee, '-c', '-o', output_dir, input_file],
executable=node) executable=node)
else:
subprocess.check_call(['node', coffee, '-c', '-o', output_dir, input_file])
def find_node(): def find_node(paths, target):
for path in WINDOWS_NODE_PATHs: for path in paths:
full_path = os.path.join(path, 'node.exe') full_path = os.path.join(path, target)
if os.path.exists(full_path): if os.path.exists(full_path):
return full_path return full_path
return None return None