summaryrefslogtreecommitdiff
path: root/src/js/run_node.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/run_node.py')
-rwxr-xr-xsrc/js/run_node.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/js/run_node.py b/src/js/run_node.py
index 1a69dc502..3125bfc2f 100755
--- a/src/js/run_node.py
+++ b/src/js/run_node.py
@@ -10,22 +10,27 @@ import os
def symlink(target, name, target_is_dir=False):
if os.name == "nt":
- from ctypes import windll, WinError
- CreateSymbolicLinkW = windll.kernel32.CreateSymbolicLinkW
+ import ctypes
+ CreateSymbolicLinkW = ctypes.windll.kernel32.CreateSymbolicLinkW
+ CreateSymbolicLinkW.restype = ctypes.c_ubyte
+ CreateSymbolicLinkW.argtypes = (ctypes.c_wchar_p,
+ ctypes.c_wchar_p,
+ ctypes.c_uint32)
+
flags = 0x02 # SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
if (target_is_dir):
flags |= 0x01 # SYMBOLIC_LINK_FLAG_DIRECTORY
- if not CreateSymbolicLinkW(name.encode('utf-16le'),
- target.encode('utf-16le'),
- flags):
- raise WinError()
+ if not CreateSymbolicLinkW(name, target, flags):
+ raise ctypes.WinError()
else:
os.symlink(target, name)
js_path = os.path.dirname(os.path.realpath(__file__))
node_modules_path = os.path.join(js_path, "node_modules")
-if not os.path.exists("node_modules"):
+if not os.path.lexists("node_modules"):
+ if os.path.exists("node_modules"):
+ os.unlink("node_modules")
symlink(node_modules_path, "node_modules", True)
args = ["node"] + sys.argv[1:]