install: install iojs -> node compat symlink
authorBen Noordhuis <info@bnoordhuis.nl>
Thu, 8 Jan 2015 13:21:26 +0000 (14:21 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Thu, 8 Jan 2015 22:21:23 +0000 (23:21 +0100)
Install a symlink for compatibility with scripts that expect a binary
called `node` or have a /path/to/node shebang.  Only done on UNIX
platforms because symlinks on Windows require elevated privileges.

PR-URL: https://github.com/iojs/io.js/pull/262
Reviewed-By: Bert Belder <bertbelder@gmail.com>
tools/install.py

index affce22..5cf78b5 100755 (executable)
@@ -127,9 +127,22 @@ def subdir_files(path, dest, action):
     action(files, subdir + '/')
 
 def files(action):
-  exeext = '.exe' if sys.platform == 'win32' else ''
+  is_windows = sys.platform == 'win32'
+
+  exeext = '.exe' if is_windows else ''
   action(['out/Release/iojs' + exeext], 'bin/iojs' + exeext)
 
+  if not is_windows:
+    # Install iojs -> node compatibility symlink.
+    link_target = 'bin/node'
+    link_path = abspath(install_path, link_target)
+    if action == uninstall:
+      action([link_path], link_target)
+    elif action == install:
+      try_symlink('iojs', link_path)
+    else:
+      assert(0)  # Unhandled action type.
+
   if 'true' == variables.get('node_use_dtrace'):
     action(['out/Release/node.d'], 'lib/dtrace/node.d')