aboutsummaryrefslogtreecommitdiffstats
path: root/icemulti
diff options
context:
space:
mode:
authorRobert Ou <rqou@robertou.com>2017-11-15 03:14:14 -0800
committerRobert Ou <rqou@robertou.com>2018-03-31 14:10:36 -0700
commit3bee3cfeadcb57833a90c7789333750676f39e81 (patch)
tree54cd6a8b36740bdd98a4f9dea6c6290ec3d15d59 /icemulti
parent9b0603c4bc156b350918c3a8762ffac28b3de42b (diff)
downloadicestorm-3bee3cfeadcb57833a90c7789333750676f39e81.tar.gz
icestorm-3bee3cfeadcb57833a90c7789333750676f39e81.tar.bz2
icestorm-3bee3cfeadcb57833a90c7789333750676f39e81.zip
Mount NODEFS if using emscripten and nodejs
Mounts root directory on `/hostfs` and the current working directory on `/hostcwd`
Diffstat (limited to 'icemulti')
-rw-r--r--icemulti/icemulti.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/icemulti/icemulti.cc b/icemulti/icemulti.cc
index 65ae6b6..4bc0919 100644
--- a/icemulti/icemulti.cc
+++ b/icemulti/icemulti.cc
@@ -24,6 +24,10 @@
#include <stdlib.h>
#include <string.h>
+#ifdef __EMSCRIPTEN__
+#include <emscripten.h>
+#endif
+
#define log(...) fprintf(stderr, __VA_ARGS__);
#define error(...) do { fprintf(stderr, "%s: ", program_short_name); fprintf(stderr, __VA_ARGS__); exit(EXIT_FAILURE); } while (0)
@@ -178,6 +182,18 @@ void usage()
int main(int argc, char **argv)
{
+#ifdef __EMSCRIPTEN__
+ EM_ASM(
+ if (ENVIRONMENT_IS_NODE)
+ {
+ FS.mkdir('/hostcwd');
+ FS.mount(NODEFS, { root: '.' }, '/hostcwd');
+ FS.mkdir('/hostfs');
+ FS.mount(NODEFS, { root: '/' }, '/hostfs');
+ }
+ );
+#endif
+
int c;
char *endptr = NULL;
bool coldboot = false;