aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEhsan Akhgari <ehsan.akhgari@gmail.com>2012-07-12 22:34:06 -0400
committerEhsan Akhgari <ehsan.akhgari@gmail.com>2012-08-30 21:28:29 -0400
commit4d09c1a7930c80f8edce2bf825a09a11e1ee1cc3 (patch)
tree04eecdd665fd7bd2d4178dc3406cfaff9fd3258f
parent4c3efd2a9a134a15c19ffd232d2e1314b5a64866 (diff)
Make the compiler output executable scripts if node is being used
-rwxr-xr-xemcc6
-rw-r--r--src/compiler.js3
2 files changed, 8 insertions, 1 deletions
diff --git a/emcc b/emcc
index aa8827da..cb5ae86a 100755
--- a/emcc
+++ b/emcc
@@ -74,7 +74,7 @@ emcc can be influenced by a few environment variables:
EMMAKEN_COMPILER - The compiler to be used, if you don't want the default clang.
'''
-import os, sys, shutil, tempfile, subprocess, shlex
+import os, sys, shutil, tempfile, subprocess, shlex, stat
from subprocess import PIPE, STDOUT
from tools import shared
from tools.shared import Compression, execute, suffix, unsuffixed, unsuffixed_basename
@@ -1034,6 +1034,10 @@ try:
else:
# copy final JS to output
shutil.move(final, target)
+ # Make the target executable if it's a Javascript file
+ os.chmod(target, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR |
+ stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP |
+ stat.S_IROTH | stat.S_IXOTH)
finally:
if not TEMP_DIR:
diff --git a/src/compiler.js b/src/compiler.js
index 89da32d5..a3e9479f 100644
--- a/src/compiler.js
+++ b/src/compiler.js
@@ -48,6 +48,9 @@ if (ENVIRONMENT_IS_NODE) {
arguments_ = process['argv'].slice(2);
+ // Print the shbang line
+ print('#!/usr/bin/env node');
+
} else if (ENVIRONMENT_IS_SHELL) {
// Polyfill over SpiderMonkey/V8 differences
if (!this['read']) {